Webspace Umzug - Image Resizer liefert nun unbrauchbare Resultate (GD Lib)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Webspace Umzug - Image Resizer liefert nun unbrauchbare Resultate (GD Lib)

    Hallo allerseits, ich Kunde von mir ist nun zu einem anderen Provider übersiedelt und hat nun das Problem, dass neue Bilder in seiner Gallerie extrem schlecht dargestellt werden.

    Ausgehend von folgendem Bild:

    http://preisenschuh.at.dev.zanner-on...s/original.jpg

    Wurde am alten Server folgendes Bild erstellt: )Link zur PHPINFO() Seite

    http://preisenschuh.at.dev.zanner-on...ter_server.jpg

    Zwar nicht so schön wie das original aber naja....

    Nun am neuen Server passiert folgendes: )Link zur PHPINFO() Seite

    http://preisenschuh.at.dev.zanner-on...uer_server.jpg

    Man erkennt also wo das Problem ist *Fg*


    Die Eingabe erfolgt über folgendes Formular:

    http://preisenschuh.at.dev.zanner-on...ngabe_feld.jpg


    Folgender Code wird von mir eingesetzt:

    PHP-Code:
    <?php
    function makeimages($thumb_x,$thumb_y,$thumb_proportion,$thumb_pro,$thumb_quality,$large_x,$large_y,$large_proportion,$large_pro,$large_quality){

                
    /* ******************************
                
                      Übernahme der Variablen
                
                   ****************************** */ 
                   
                
                
    $thumb_x;                    //        Breite des Thumbnails in Pixel
                
    $thumb_y;                    //        Höhe des Thumbnails in Pixel
                
    $thumb_proportion;            //        Proportionen sind einzuhalten wenn Wert 1 ist
                
    $thumb_pro;                    //        Gibt an welcher Wert ausschlaggebend ist...
                
    $thumb_quality;                //        Qualität des gespeicherten Bildes INT Zahl von 0 - 100 opt. ist 80 wegen der Dateigrösse
                
    $large_x;                    //        Breite des grossen Bildes
                
    $large_y;                    //         Höhe des grossen Bildes
                
    $large_proportion;            //        Proportionen sind einzuhalten wenn Wert 1 ist
                
    $large_pro;                    //        Gibt an welcher Wert ausschlaggebend ist...
                
    $large_quality;                //        Qualität des gespeicherten Bildes INT Zahl von 0 - 100 opt. ist 80 wegen der Dateigrösse
                
    $category $_GET["ref_id"];    //        Categorie unter welcher die Bilder vermerkt werden sollen.
                   
                
    $thumbpath "../../bilder/thumb/";
                
    $imagepath "../../bilder/large/";
                
    $uploaddir "../../bilder/org/";
                   
                
    /* ******************************
                
                      Übernahme der Variablen
                
                   ****************************** */
                   
        
        
        
    $f_count count($_FILES["file"]);
        for(
    $i 0$i <= $f_count$i++){
             if(
    $_FILES["file"]['tmp_name'][$i] != "none"){ // Wenn eine Datei hochgeladen wird, dann verarbeiten
                
    if(move_uploaded_file($_FILES['file']['tmp_name'][$i], $uploaddir $_FILES['file']['name'][$i])){
                
                
    $image ImageCreateFromJPEG($uploaddir .$_FILES['file']['name'][$i]);            // Binäres Bild
                
    $image_size getimagesize($uploaddir $_FILES['file']['name'][$i]);            // Abmessungen des Bildes
                
                //print_r($_FILES);
                
                
    $src_x $image_size[0];                                            // Auflösung des Ausgangsbild
                
    $src_y $image_size[1];
                
                
    $filetype ".jpg";                                                    // Dateiname wird erstellt
                
    $filename =  time()."_" $i .$filetype;
                
                
                
                
    /* ******************************
                
                      THUMBNAIL wird erzeugt!
                
                   ****************************** */ 
                
                
    $des_thumb_x_tmp $src_x $src_x;
                
    $des_thumb_y_tmp $src_y $src_x;
                
                
                
    $des_thumb_x $thumb_x;
                
    $des_thumb_y round(($des_thumb_x $des_thumb_y_tmp),0);
                
                
    $image_thumb imagecreatetruecolor($des_thumb_x,$des_thumb_y);
                
                
    //convert truecolor immage resource to palette image resource (so we can count the colors...) 
                
                
    imagetruecolortopalette($imagefalse256); 
                
    $palsize ImageColorsTotal($image); 
                for (
    $x 0$x<$palsize$x++) 
                { 
                       
    $colors ImageColorsForIndex($image$x); 
                       
    ImageColorAllocate($image_thumb$colors['red'], $colors['green'], $colors['blue']); 
                } 
                
                
    imagecopyresized($image_thumb$image0000$des_thumb_x$des_thumb_y$src_x$src_y); 
                
                
    imagejpeg($image_thumb,$thumbpath $filename,$thumb_quality);
                
                
    //echo("<img src=\"". $thumbpath . $filename."\">" . $i . "<br>");


                /* ******************************
                
                      GROSSANSICH wird erzeugt!
                
                   ****************************** */ 

                
    $des_thumb_x_tmp $src_x $src_x;
                
    $des_y_tmp $src_y $src_x;
                
                
    $des_x $large_x;
                
    $des_y round(($des_x $des_y_tmp),0);;
                
                
    $image_large imagecreatetruecolor($des_x,$des_y);
                
                
    //convert truecolor immage resource to palette image resource (so we can count the colors...) 
                
                
    imagetruecolortopalette($imagefalse256); 
                
    $palsize ImageColorsTotal($image); 
                for (
    $x 0$x<$palsize$x++) 
                { 
                       
    $colors imagecolorsforindex($image$x); 
                       
    ImageColorAllocate($image_large$colors['red'], $colors['green'], $colors['blue']); 
                } 
                
                
    imagecopyresized($image_large$image0000$des_x$des_y$src_x$src_y); 
                
    imagejpeg($image_large,$imagepath $filename,$large_quality);
                
                
                
    $str_sql "insert into c_g_bilder (datum,bildtitel,bildtext,bildorg,bildthumb,bildgross,katid) ";
                
    $str_sql $str_sql " values(now(),'','','" .  $_FILES['file']['name'][$i] . "','" $filename "','"$filename ."'," $category ")";
                
    //echo($str_sql);
                //echo("<img src=\"". $imagepath . $filename."\">" . $i . "<br>");
                
    mysql_query($str_sql);
                }
            }
        }
    }

    function 
    get_galleriename($ref_id){        // Zeigt den Gallerie-Namen an...
        
    if(($ref_id == "") OR ($ref_id ==0)){    // REF ID ist nicht gesetzt also 0 => Root
            
    $str_ref_id "Root";
        } else {
            
    $str_sql "select text from c_g_struktur where id = " $ref_id;
            
    $result mysql_query($str_sql);
            while(
    $row mysql_fetch_array($result)){
                
    $str_ref_id $row["text"];
            }
        }
        
        return 
    $str_ref_id;
    }
    ?>

    das ganze wird wie folgt aufgerufen:

    PHP-Code:
    if(isset($_POST["upload"])){            // Fuhrt den Fileupload incl. Eintrag in die DB aus...
        
    makeimages($_POST["thumb_x"],$_POST["thumb_y"],$_POST["thumb_proportion"],$_POST["thumb_pro"],$_POST["thumb_quality"],$_POST["large_x"],$_POST["large_y"],$_POST["large_proportion"],$_POST["large_pro"],$_POST["large_quality"],$_GET["ref_id"]);
        }

    if(isset(
    $_GET["sub"])){
        if(
    $_GET["sub"] == "addcat"){
            
    $str_kategorie $_POST["kategorie"];
            if(
    strlen($str_kategorie) > 0){
                
    $str_sql "insert into c_g_kategorie (bezeichnung) values('" $str_kategorie "')";
                
    mysql_query($str_sql);}
        }
        if(
    $_GET["sub"] == "rename"){
            
    $str_neuer_name $_POST["f_up_name"];
            
    $str_sql "update c_g_struktur set text = '" $str_neuer_name "' where  id =" $f_ref_id;
            
    mysql_query($str_sql);
        }
    }
    ?> 


    Vielleicht habt Ihr ja eind Idee... ich weis echt nicht mehr so recht was ich machen soll... (Der Kern wurde leider auch nicht von mir geschrieben


    EDIT:
    so große bilder bitte nicht direkt einbinden, verlinkung reicht vollkommen aus.
    Zuletzt geändert von wahsaga; 06.05.2005, 16:24.

  • #2
    wieso wird ueberhaupt die anzahl der farben im thumbnail auf 256 reduziert, wenn du ein jpeg nutzt? und wieso copyresized und nicht copyresampled?
    1101100 1101001 1100110 1100101 1101001 1110011 1100001 1100010 1101001 1110100 1100011 1101000

    /(bb|[^b]{2})/

    Kommentar


    • #3
      Original geschrieben von loci
      wieso wird ueberhaupt die anzahl der farben im thumbnail auf 256 reduziert, wenn du ein jpeg nutzt? und wieso copyresized und nicht copyresampled?
      Hm berechtigte Frage - Ich muss ganz ehrlich gestehen, ich hab den Teil so übernommen, und in der Online Doku von PHP hab ich zu den Farben nichts gefunden. was wär da denn gut? 16 Bit, oder doch besser 32 Bit? - Ist das Copyresampled besser?

      - Mich hats bis dato nicht wirklich gestört weils ja funktioniert hat, wenn auch mit nicht all zu schönen Farben.

      - Wie viele Farben machen hier Sinn?

      Kommentar


      • #4
        wie viele unterstuetzt denn jpeg? soviele wuerd ich nehmen

        erstell einfach ein leeres truecolor-bild der gewuenschten groesse, resize das original per imagecopyresampled in das leere bild und sei gluecklich,

        btw: resampled erzielt definitiv ein besseres ergebnis, da noch ein filter angewandt wird nach dem resize.
        1101100 1101001 1100110 1100101 1101001 1110011 1100001 1100010 1101001 1110100 1100011 1101000

        /(bb|[^b]{2})/

        Kommentar


        • #5
          btw: resampled erzielt definitiv ein besseres ergebnis, da noch ein filter angewandt wird nach dem resize
          Nicht ganz, ist glaub ich kein Filter, sondern es wird mit Anti-Alias runtergerechnet.
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            aaah besten dank jetzt flutschts 1A

            Man lernt nie aus

            Besten dank und schönes Wochenende!

            Kommentar


            • #7
              bilder-direkteinbindung entfernt.

              und http://www.php-resource.de/forum/sho...threadid=50454 liest du bitte auch noch mal!
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar

              Lädt...
              X