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.

War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top