Roland: Seitenverhältnissfehler

Hi!

ich hab folgende Funktion:
// image1 ist ein eingelesenes Bild
// final_width is die Größe, auf die das Bild gebracht werden soll...

$new_height = round($height/$width*$final_width);
      $new_width = $original_width;

$image = imagecreatetruecolor($new_width, $new_height);
      imagecopyresampled($image, $image1, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
      imagejpeg($image, $pfad.$dateiname, 70);

imagedestroy($image);
      imagedestroy($image1);

Aber da passt das Seitenverhältniss deutlich nicht, warum?

lg
Roland

  1. hi,

    $new_height = round($height/$width*$final_width);
          $new_width = $original_width;

    Unter der Annahme, die Variablennamen sind sprechend gewählt - du berechnest eine neue Höhe, verwendest aber weiterhin die alte Breite - und wunderst dich dann, dass das Seitenverhältnis anschliessend seltsam erscheint?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Wie berechnet man denn sowas sonst, ich glaub schon dass das stimmt (hab nur einen kl. Fehler:
      $original_width = $final_width;

      Wenn ich ein Bild von z.B. 3x4px hab $final_width = 12;
      =>
      $new_height = round(4/3*12) = 16;
      $new_width = 12;

      12:16 = 3:4
      stimmt doch!?

      lg
      Roland

      1. Hallo

        Wie berechnet man denn sowas sonst, ich glaub schon dass das stimmt (hab nur einen kl. Fehler:
        $original_width = $final_width;

        Wenn ich ein Bild von z.B. 3x4px hab $final_width = 12;
        =>
        $new_height = round(4/3*12) = 16;
        $new_width = 12;

        Beispiel:

        Ein Bild 400x300 Pixel soll auf 100xX (X wird 75 sein) Pixel verkleinert werden.

        400/100=4
        Dies ist das Verhältnis zwischen ursprünglicher Breite und der Breite des verkleinerten Bildes sein. Da die Größe des Ursprungsbildes in vielen Fällen nicht vorherzusehen ist, sollte dieser Schritt der eigentlichen Größenberechnung vorausgehen.

        Die Breite des Bildes wird also mit 400/4=100 berechnet. Nun muss die Höhe ebenfalls angepasst werden. Dementsprechend muss diese ebenfalls durch 4 geteilt werden (300/4=75).

        Teile also sowohl die Breite als auch die Höhe (in diesem Beispiel) durch 4 und runde die Werte, falls Fließkommazahlen herauskommen.

        Den dazugehörigen Code darfst du nun selbst schreiben. :-)

        12:16 = 3:4
        stimmt doch!?

        Das Verhältnis der Zahlen zueinander stimmt. :-)

        Tschö, Auge

        --
        Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
        (Victor Hugo)
        <dingdong /><dingdong /><toc /><toc /><toc /><shout>Florence!</shout>
        Veranstaltungsdatenbank Vdb 0.1