Bildorientierung mit ImageMagick erkennen
-
21-09-2019 - |
Frage
Ich möchte ein Bild mit einem Parameter mit einem Parameter ändern: Breite.
Wenn das Bild horizontal ist, lautet die neue Größe: Breite = Breite, Höhe = proportional zur Breite.
Und wenn das Bild vertikal ist, lautet die neue Größe: Höhe = Breite, Breite = proportional zur Höhe.
Irgendeine Idee, wie man das implementiert?
Ich benutze Imagemagick mit Magicknet -Wrapper.
Lösung
Aus der Verwendungsreferenz bei http://www.imagemagick.org/usage/Resize/
convert org.jpg -resize widthxwidth final.jpg
EG WidthXwidth kann 256x256 sein
Das Seitenverhältnis wird aufbewahrt und die Größenänderung innerhalb der Grenze von 256 x 256 Pixelquadrat erfolgen.
Zitiert aus der Seite oben:
Die Größenänderung passt das Bild in die angeforderte Größe. Es füllt sich nicht, die angeforderte Boxgröße.
Andere Tipps
Ich bin mir nicht sicher, was du hier meinst. Sie sagen, Sie möchten nur die Breite definieren, aber im "vertikalen" Fall setzen Sie die Höhe auf die Breite? Wenn Sie etwas mit der Breite ändern möchten, verwenden Sie diesen Pseudo-Code:
ratio = width / height
newWidth = <the new width>
newHeight = newWidth / ratio
Wenn Sie die Größe der längsten Größe zu einem bestimmten Wert ändern möchten, versuchen Sie Folgendes:
ratio = width / height
if ratio > 1 // wider than it is tall
newWidth = <theValue>
newHeight = newWidth / ratio
else // taller than it is wide
newHeight = <theValue>
newWidth = newHeight * ratio