Image Seitenverhältnis

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

  • 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
    Zuletzt geändert von Prominenter; 13.12.2011, 13:26. Grund: Fehler gefunden

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

    Kommentar


    • #3
      Zitat von h3ll Beitrag anzeigen
      Deine Funktion tut nicht das, was sie sagt. Also das stimmt hinten und vorne nicht.
      Hä???. Doch tut sie !!!

      Kommentar


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

        Kommentar


        • #5
          Zitat von h3ll Beitrag anzeigen
          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

          Kommentar


          • #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 
            Zuletzt geändert von h3ll; 13.12.2011, 14:43.

            Kommentar

            Lädt...
            X