Image Seitenverhältnis

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Image Seitenverhältnis

    Hi@all

    PHP Code:
    function resizeImage($ImagePath,$Breite_Max,$Hoehe_Max

     
    $size=getimagesize($ImagePath); 
        
    //Verkleinere Bild unter Beibehalt des Seitenverhältnisses 
        
    if($size[0] == $size[1]) 
        { 
         
    $neueBreite $Breite_Max
         
    $neueHoehe $Hoehe_Max
        } 
        elseif (
    $size[0] < $size[1])  
        { 
         
    //Wenn Breite kleiner als Höhe 
         
    $neueHoehe $Hoehe_Max
         
    $neueBreite $size[0]*$neueHoehe/$size[1]; 
        } 
        else 
        { 
         
    //wenn Höhe kleiner als Breite 
         
    $neueBreite $Breite_Max
         
    $neueHoehe $size[1]*$neueBreite/$size[0]; 
        }  
     return array(
    $neueBreite$neueHoehe);

    Ich habe eine maximale Anzeigefläche von 320 x 240 pix
    Nun möcht ich das jedes Bild, egal wie groß, in Abhängigkeit seiner eigenen Größe darin angezeigt wird ohne Verzerrung, aber irgendwie macht es mein Code nicht, also es muss nicht so groß sein wie die Anzeigefläche selbst, sondern darin angezeigt werden, also wenn breiter dann eben maximalbreit, höhe kann dann kleiner sein, und eben wenn höher, dann eben maxHöhe und breite kann kleiner sein.

    Ich übergebe das Bild, die MaxBreite 320 und die MaxHoehe 240
    resizeImage($bild01,320,240);
    Im <img> setze ich dann per style="width: $neueBreite; height:$neueHoehe;"


    #EDIT:
    Hab den Fehler gefunden, hatte bei der style-Angabe 'px' vergessen, also: style="width: ".$neueBreite."px; height:".$neueHoehe."px;"

    Jetzt aber noch eine andere Frage dazu.
    Kann ich gleich das Funktionsergebnis in die style anweisung schreiben, also: also: style="width: ".resizeImage($ImagePath,$Breite_Max,$Hoehe_Max)[0]."px; height:".resizeImage($ImagePath,$Breite_Max,$Hoehe_Max)[1]."px;"

    Aber das scheint nicht zu funktionieren, auch die Ausgabe: echo resizeImage($ImagePath,$Breite_Max,$Hoehe_Max)[0] gibt mir einen Fehler (Parse error: syntax error, unexpected '[', expecting ',' or ';' in ...) zurück

    Thx@all
    Last edited by Prominenter; 13-12-2011, 12:26. Reason: Fehler gefunden

  • #2
    Deine Funktion tut nicht das, was sie sagt. Also das stimmt hinten und vorne nicht.

    Comment


    • #3
      Originally posted by h3ll View Post
      Deine Funktion tut nicht das, was sie sagt. Also das stimmt hinten und vorne nicht.
      Hä???. Doch tut sie !!!

      Comment


      • #4
        Nein. Die Funktion heißt "resizeImage". Aber rauskommen tut ein Array mit Zahlen und kein Image. Ich als Programmierer wäre dann verwundert.

        Comment


        • #5
          Originally posted by h3ll View Post
          Nein. Die Funktion heißt "resizeImage". Aber rauskommen tut ein Array mit Zahlen und kein Image. Ich als Programmierer wäre dann verwundert.
          Äh, ja, da hast du natürlich recht, also werde ich die Funktion noch umbenennen in berechneNeueGroesse()

          OK, Aber nun noch mal zur Frage.

          Warum geht: echo function()[0] nicht, ich muss erst $ergebnis= function() schreiben und dann echo $ergebnis[0].

          THX@all

          Comment


          • #6
            Das geht erst ab PHP 5.4

            Aber was geht ist:
            PHP Code:
            class ImageSize {
                public 
            $x 0;
                public 
            $y 0;

            PHP Code:
            function doubleImageSize(ImageSize $size) {
                
            $newSize = new ImageSize();
                
            $newSize->$size->2;
                
            $newSize->$size->2;
                return 
            $newSize;

            PHP Code:
            $imageSize = new ImageSize();
            $imageSize->320;
            $imageSize->240;

            echo 
            doubleImageSize($imageSize)->x;
            // 640

            echo doubleImageSize($imageSize)->y;
            // 480 
            Last edited by h3ll; 13-12-2011, 13:43.

            Comment

            Working...
            X