Seitenverhältnissfehler
Roland
- php
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
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
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
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