Code optimieren

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

  • Code optimieren

    Hi,

    hab gerade hier angemeldet und hab auch gleich ne Frage . Ich hab einen Code geschrieben das jemand ein Bild hochladen kann und das dieses dann in drei größen heruntergerechnet wird. Allerdings sieht mir das ziemlich "unoptimiert" aus . Jetzt wollte ich mal gerne wissen wie ihr das optimieren würdet.

    Danke schon mal .

    P.S.: funktionieren tuts, jedoch nur bei kleinern Bildern, aber das liegt am Speicher.

    PHP-Code:
    $filename $uploaddir $image_name '.jpg';

    list(
    $width_orig$height_orig) = getimagesize($filename);
        
    $width_small 50;
        
    $width_medium 200;
        
    $width_large 500;
        
    $height_small 50;
        
    $height_medium 200;
        
    $height_large 500;

    if ( 
    $width_orig $height_orig 
    {
        
    $width_small = ($height_small $height_orig) * $width_orig;
        
    $width_medium = ($height_medium $height_orig) * $width_orig;
        
    $width_large = ($height_large $height_orig) * $width_orig;

    else 
    {
       
    $height_small = ($width_small $width_orig) * $height_orig;
        
    $height_medium = ($width_medium $width_orig) * $height_orig;
        
    $height_large = ($width_large $width_orig) * $height_orig;
    }

    // Small
    $image_true_small imagecreatetruecolor($width_small$height_small);
    $image_small imagecreatefromjpeg($filename);
    imagecopyresampled($image_true_small$image_small0000$width_small$height_small$width_orig$height_orig);

    imagejpeg($image_true_small$uploaddir $image_name '_small.jpg'90);

    // Medium
    $image_true_medium imagecreatetruecolor($width_medium$height_medium);
    $image_medium imagecreatefromjpeg($filename);
    imagecopyresampled($image_true_medium$image_medium0000$width_medium$height_medium$width_orig$height_orig);

    imagejpeg($image_true_medium$uploaddir $image_name '_medium.jpg'90);

    // Large
    $image_true_large imagecreatetruecolor($width_large$height_large);
    $image_large imagecreatefromjpeg($filename);
    imagecopyresampled($image_true_large$image_large0000$width_large$height_large$width_orig$height_orig);
    imagejpeg($image_true_large$uploaddir $image_name '_large.jpg'85 

  • #2
    Neu? Dann: http://www.php-resource.de/forum/sho...threadid=50454

    Auch wenn es hier eigentlich nicht üblich ist, dass wir hier jeden code validieren und optimieren. Hier mal ein Ansatz:

    Du machst 3 Mal das gleich. Einen Code in einer Schleife die 3 mal durchläuft spart gut die hälfte an Zeilen...

    Kommentar


    • #3
      vor allem in verbindung mit arrays.

      Kommentar


      • #4
        Ich glaub ich habs fast . Allerdings weiß ich nicht wie ich bei foreach dem array einen anderen Wert zuweisen kann. Ansonsten funktioniert es, mit der hälfte des codes .

        PHP-Code:
        $filename $uploaddir $image_name '.jpg';

        list(
        $width_orig$height_orig) = getimagesize($filename);
        $arr = array( array(50,50,"_small"), array(200,200,"_medium"), array(500,500,"_large") );

        foreach(
        $arr as $size) {
            if ( 
        $width_orig $height_orig )  {
             
        //geht nicht
                
        $size[0] = ($size[1] / $height_orig) * $width_orig;
            } 
            else  {
             
        //geht nicht
               
        $size[1] = ($size[0] / $width_orig) * $height_orig;
            }
        }
        foreach(
        $arr as $size) {
            
        $image_true imagecreatetruecolor($size[0], $size[1]);
            
        $image imagecreatefromjpeg($filename);
            
        imagecopyresampled($image_true$image0000$size[0], $size[1], $width_orig$height_orig);
            
        imagejpeg($image_true$uploaddir $image_name $size[2] . '.jpg'90);

        mfg

        Kommentar


        • #5

          Kommentar


          • #6
            Werd ich nicht ganz schlau drauss .

            Ich will eigentlich nur wissen wie man beim array $arr während eines foreach einen bestistimmten Wert ändern kann, oder ob das überhaupt geht.

            Wenn es darum geht das du nicht zur seite scrollen willst, dann kann ich ja oben den Code löschen, denn der ist ja nur zu lang .

            mfg

            Kommentar


            • #7
              Hallo,

              du kriegst den Hinweis auf den Thread hauptsächlich deshalb, weil du deinen Code so umbrechen sollst, dass man nicht querscrollen muss - solang du das nicht gemacht hast, wirst du vergebens auf weitere Hilfe warten.

              Lies den Thread - aber bitte komplett und nicht nur den Abschnitt wo's ums Code umbrechen geht.
              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

              Lädt...
              X