Antworten:
Dies wird in der offiziellen ImageMagick-Dokumentation unter „Zuschneiden der Miniatur“ erläutert :
Eine Alternative besteht darin, das Bild nicht so auszublenden, dass es der gewünschten Miniaturbildgröße entspricht, sondern die Teile des Bildes auszuschneiden, die nicht der endgültigen Größe entsprechen.
Das bedeutet natürlich, dass Sie tatsächlich einige Teile des Originalbilds verlieren, insbesondere die Bildränder, aber das Ergebnis ist eine vergrößerte Miniaturansicht des mittleren Teils des Bildes. Dies ist normalerweise (aber nicht immer) das Hauptmotiv des Bildes, daher handelt es sich um eine praktische Methode zur Erstellung von Miniaturansichten.
Ab IM v6.3.8-3 wurde das spezielle Größenänderungsoptionsflag '^' hinzugefügt, um dies zu vereinfachen. Wir ändern einfach die Größe mit dieser Flagge und schneiden dann die Teile des Bildes ab, die über die gewünschte Größe hinausgehen.
Und im Kontext eines Beispielbefehls:
convert -define jpeg:size=200x200 hatching_orig.jpg -thumbnail 100x100^ \
-gravity center -extent 100x100 cut_to_fit.gif
Ignacio hat auf die richtige Dokumentation verwiesen, ich füge sie jedoch der Einfachheit halber hier ein:
convert -define jpeg:size=200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 thumbnail.jpeg
In ähnlicher Weise gilt für GraphicsMagick Folgendes:
gm convert -size 200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 +profile "*" thumbnail.jpeg
Erläuterung:
-size 200x200
teilt dem JPEG-Decoder mit, dass wir nur diese Auflösung benötigen, damit Speicherplatz gespart und das Quellbild schneller gelesen werden kann-thumbnail 100x100^
Schnelle Größenänderung, wodurch die kürzeste Seite 100 wird- gravity center
zentrieren Sie die nächste Operation-extent 100x100
Wenden Sie das Bild auf eine Leinwand von 100 x 100 an+profile "*"
speichere keine Metainfo im JPEG (verkleinere das resultierende Bild)Das geht einfacher:
Mit dem folgenden Befehl wird die kleinere Seite auf 100 Pixel verkleinert und ein Quadrat von 100 x 100 zugeschnitten. Sie können einen -strip
Befehl hinzufügen , um die Dateigröße zu reduzieren.
convert original.jpg -resize "100^>" -gravity center \
-crop 100x100+0+0 -strip thumbnail.jpg
Im Gegensatz zu anderen wird nicht versucht, Speicherplatz zu sparen. Stattdessen macht es, was Sie wollen, und nicht mehr. Außerdem werden Bilder nicht hochskaliert.
Ich benutze GraphicsMagick, um Miniaturansichten mit präziser Größe zu erstellen, aber ich fülle das Bild mit einem Schachbrettmuster auf, anstatt den Überhang zu beschneiden.
gm convert -limit Threads 1 -size 320x180 pattern:checkerboard -background transparent -gravity center -resize 320x180 -extent 320x180 original.jpg -flatten -resize 112x65! -interlace Line 1 thumb_112x65.jpg
gm convert
// Single threaded seems faster on smaller files
-limit Threads 1
// Generate a checkerboard of size 320x180.
// Sets the relative size of the checkerboard squares,
// also sets the desired aspect ratio. In my case (16:9)
-size 320x180 pattern:checkerboard
// Resize the input image and center it on a transparent layer.
-background transparent -gravity center -resize 320x180 -extent 320x180 orig.jpg
// Merge the layers
-flatten
// Resize the output to the desired
// The ! causes the aspect ratio to be ignored, fixing any rounding errors.
// (Specify a size with the same aspect ratio as the checkerboard.)
-resize 112x65!
// Use Progressive JPEG Encoding
-interlace Line
// Output Image
thumb_112x65.jpg
Ich denke, Sie suchen nach etwas wie:
convert -crop 100x100+50+50 input_image.jpg output_image.jpg
wo 100x100
ist die Größe des endgültigen Rechtecks und 50x50
der Versatz .
convert -thumbnail 100x100+50+50 input_image.jpg output_image.jpg
für weitere Informationen überprüfen Igancio Vazquez Antwort für ein Beispiel oder überprüfen Sie die Dokumentation
Dieser Befehl schneidet auf ein Quadrat zu und ändert dann die Größe auf 150x150
convert 824-full.jpg -set option:size '%[fx:min(w,h)]x%[fx:min(w,h)]' xc:none +swap -gravity center -composite -resize 150x150 temp.jpg
Weitere Optionen stehen hier zur Verfügung: http://www.imagemagick.org/Usage/thumbnails/#square