Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Thumnails beim Bildupload

  1. #1
    Registrierter Benutzer Avatar von Hondapower
    Registriert seit
    24.10.2002
    Ort
    München
    Beiträge
    34

    Thumnails beim Bildupload

    Hallo,

    durch die Suche bin ich noch nicht richtig schlau geworden...
    Aber vielleicht kann mir jemand von euch bei meinem Problem helfen.

    Ich habe vor eine Online Bilder-Galerie zu erstellen.
    Diese soll dann datenbankgestützt laufen.

    Für diese Gallerie benötige ich allerdings ein Upload Script, welches mir die Bilder, die hochgeladen werden auf eine feste Größe verkleinert also ein Thumbnail erstellt.
    Weiterhin soll noch eine komprimierte Variante des Bildes erstellt werden (wenn man z.B. die Bilder direkt von der Digitalkamera hochlädt, da die Bilder eine beachtliche, fürs Web ungeeignete Größe haben).
    So weit so gut...
    Mir ist allerdings aufgefallen, das durch das Resizen mit PHP die Qualität spürbar verloren geht, wenn man die eingebauten ImageFunktionen nutzt (Treppeneffekte, Farbverschiebungen usw.)

    Wenn es nicht möglich ist, eine gute Qualität mit einem PHP Upload Script zu erreichen, vielleicht gibt es da eine Möglichkeit sowas mit Perl zu realisieren?

    P.S.: Ich habe keinen Zugriff auf den Server, da meine Webseite auf Shared Webspace liegt, ansonsten könnte man das Problem mit Imagemagick (schreibt man das so?) lösen.

    Danke für eure Hilfe!

  2. #2
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Schau dir mal diesen Thread an, vielleicht hilft er dir ein wenig.

    http://www.mrunix.de/forums/showthre...light=gallerie


  3. #3
    Registrierter Benutzer Avatar von Hondapower
    Registriert seit
    24.10.2002
    Ort
    München
    Beiträge
    34
    Danke für den Link, aber auf diesen Thread bin ich bei der Suche auch schon gekommen.
    Da werden ja im Prinzip auch diese PHP Funktionen zum "resizen" der Bilder genutzt.

    Gibt es eigentlich eine Möglichkeit die Vorteile von Imagemagick zu nutzen, OHNE das man es auf dem Server installiert?
    Als Perl-Modul oder so? Die darf ich bei meinem Provider einspielen, wenn ich da die FAQ richtig verstanden habe

    Thx

  4. #4
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    Hast du schon imagecopyresampled anstatt imagecopyresized probiert? Brauchst aber GDLib 2.x für. Die Qualität soll da besser sein.

  5. #5
    Registrierter Benutzer Avatar von Hondapower
    Registriert seit
    24.10.2002
    Ort
    München
    Beiträge
    34
    Okay...

    ich werde es mal versuchen, sobald meine Domain zum neuen Provider übertragen ist!
    Zur Zeit sind mir da die Hände gebunden, da ich meine Scripte zwar hochladen, aber nicht austesten kann!
    Meld mich wieder

  6. #6
    Registrierter Benutzer Avatar von Hondapower
    Registriert seit
    24.10.2002
    Ort
    München
    Beiträge
    34
    So... KK ist vollzogen *freu*

    Ist leider nur Vorfreude...

    Kein GDLib 2.x zur Verfügung

    Hab auch schon ein paar Thumbs mit imagecopyresized erstellt...
    Funktionieren tut das Ganze, aber die Qualität lässt echt zu wünschen übrig.

    Gibt es noch andere Möglichkeiten?

    [EDIT]
    Gibt es eigentlich eine Möglichkeit die GDLib 2 nachzuziehen?
    Habe allerdings keinen Zugriff auf den Server
    [/EDIT]
    Geändert von Hondapower (05-02-2003 um 18:22 Uhr)

  7. #7
    Registrierter Benutzer Avatar von Hondapower
    Registriert seit
    24.10.2002
    Ort
    München
    Beiträge
    34
    Upload Script ist jetzt fertig...

    Kann mir mal jemand sagen, ob ich da noch mehr Qualität aus den Bildern rausholen kann?
    So richtig bin ich noch nicht zufrieden.
    PHP Version ist 4.2.3

    Hier mal ein Beispiel:

    Original:


    Resized:


    Thumbnail:


    Und hier der Code:
    PHP-Code:
            // Generiert Zufallsnamen für Bild
            
    $zahl        md5 (uniqid (rand()));
            
    $image_name    $zahl[0] . $zahl[5] . $zahl[2] . $zahl[8] . 
    $zahl[1] . $zahl[9] . $zahl[11] .$zahl[10].$zahl[13]. $zahl[7];

            
    // Die Datei Endung Bestimmen
            
    $pic_typ $_FILES['picture_a']['type'];
            
    $extension "";
            if(
    $pic_typ=="image/gif"$extension "gif";
            if (
    $pic_typ=="image/jpg"$extension "jpg";
            if (
    $pic_typ=="image/jpeg"$extension "jpg";
            if (
    $pic_typ=="image/pjpeg"$extension "jpg";
            if (
    $pic_typ=="image/png"$extension "png";
            if (
    $pic_typ=="image/bmp"$extension "bmp";

            
    // Destination
            
    $destination "../ressourcen/upload/original/".$image_name.".".$extension;

            
    // Bild verschieben
            
    move_uploaded_file ($_FILES['picture_a']['tmp_name'], "$destination");

        
            
    //Originalbild einlesen
            
    $h_imgimagecreatefromjpeg($destination);
            
    $widthimagesx($h_img);
            
    $heightimagesy($h_img);

            if((
    $width <= 640) && ($height <= 480)) {
                echo 
    "Keine Komprimierung....";
            }
            else {
                
    // BILD KOMPRIMIEREN AUF 640 Breite oder 480 Höhe\\



                // Bildgröße berechnen (640 = Breite, 480 = Höhe)
                
    if( ($width/$height) > (1+(1/3)) ) {
                    
    $thb_x 640;
                    
    $thb_y = ($thb_x/$width)*$height;
                }
                else if( (
    $width/$height) < (1+(1/3)) ) {
                    
    $thb_y 480;
                    
    $thb_x = ($thb_y/$height)*$width;
                }
                else {
                    
    $thb_x 640;
                    
    $thb_y 480;
                }

                
    $h_thb imagecreate($thb_x$thb_y);
                
    imagecopyresized(
                    
    $h_thb,
                    
    $h_img,
                    
    0,
                    
    0,
                    
    0,
                    
    0,
                    
    $thb_x,
                    
    $thb_y,
                    
    $width,
                    
    $height);
        
                
    // In File speichern
                
    $image_dir "../ressourcen/upload/images/" $image_name ".jpg";
                
    imagejpeg($h_thb"$image_dir"85);
            }
        
            
    // Thumbnail erstellen \\
            
            // Bildgröße berechnen (100 = Breite, 75 = Höhe)
            
    if( ($width/$height) > (1+(1/3)) ) {
                
    $thb_x 100;
                
    $thb_y = ($thb_x/$width)*$height;
            }
            else if( (
    $width/$height) < (1+(1/3)) ) {
                
    $thb_y 75;
                
    $thb_x = ($thb_y/$height)*$width;
            }
            else {
                
    $thb_x 100;
                
    $thb_y 75;
            }


            
    $h_thb imagecreate(10075);
            
    $f1f1f1 ImageColorAllocate ($h_thb241241241);
            
    imagefilledrectangle ($h_thb0010075$f1f1f1);


        
            
    // Verkleinern
            
    imagecopyresized(
                
    $h_thb,
                
    $h_img,
                
    0,
                
    0,
                
    0,
                
    0,
                
    $thb_x,
                
    $thb_y,
                
    $width,
                
    $height
            
    );
        
            
    // In File speichern
            
    $thumb_dir "../ressourcen/upload/thumbs/" $image_name ".jpg";
            
    imagejpeg($h_thb"$thumb_dir"85); 
    Für Verbesserungsvorschläge bin ich jederzeit offen!
    Geändert von Hondapower (06-02-2003 um 20:36 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •