Jawaban:
Ini dijelaskan dalam dokumentasi resmi ImageMagick di bawah, "Potong Thumbnail agar Sesuai" :
Alternatif, daripada mengganti gambar agar sesuai dengan ukuran thumbnail spesifik yang kita inginkan, adalah dengan memotong bagian gambar yang tidak sesuai dengan ukuran akhir.
Tentu saja ini berarti Anda benar-benar kehilangan beberapa bagian gambar asli, terutama bagian tepi gambar, tetapi hasilnya adalah thumbnail yang diperbesar dari bagian tengah gambar. Ini biasanya (tetapi tidak selalu) subjek utama gambar, jadi ini adalah metode praktis pembuatan thumbnail.
Pada IM v6.3.8-3 bendera opsi ukuran khusus '^' telah ditambahkan untuk membuatnya lebih mudah. Kami hanya mengubah ukuran menggunakan bendera ini kemudian memotong bagian gambar yang melebihi ukuran yang diinginkan.
Dan dalam konteks contoh perintah:
convert -define jpeg:size=200x200 hatching_orig.jpg -thumbnail 100x100^ \
-gravity center -extent 100x100 cut_to_fit.gif
Ignacio tertaut ke dokumentasi yang benar, namun saya akan menempelkannya di sini untuk kenyamanan:
convert -define jpeg:size=200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 thumbnail.jpeg
Demikian pula, berikut ini adalah untuk GraphicsMagick:
gm convert -size 200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 +profile "*" thumbnail.jpeg
Penjelasan:
-size 200x200
memberitahu decoder jpeg kita hanya perlu resolusi ini sehingga dapat menghemat memori dan membaca sumber gambar lebih cepat-thumbnail 100x100^
mengubah ukuran cepat membuat sisi terpendek 100- gravity center
pusat operasi selanjutnya-extent 100x100
terapkan gambar ke kanvas 100x100+profile "*"
jangan menyimpan metainfo apa pun ke jpeg (membuat gambar yang dihasilkan lebih kecil)Itu adalah cara yang lebih sederhana untuk melakukannya:
Perintah berikut mengubah ukuran sisi yang lebih kecil menjadi 100 piksel dan memotong 100x100 persegi. Anda dapat menambahkan -strip
perintah untuk mengurangi ukuran file.
convert original.jpg -resize "100^>" -gravity center \
-crop 100x100+0+0 -strip thumbnail.jpg
Tidak seperti yang lain, itu tidak mencoba untuk menghemat memori. Sebaliknya, ia melakukan apa yang Anda inginkan, dan tidak lebih. Plus, itu tidak akan meningkatkan gambar.
Saya menggunakan graphicmagick untuk menghasilkan thumbnail berukuran tepat tapi saya mengisi gambar dengan kotak-kotak alih-alih memotong overhang.
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
Saya pikir Anda mencari sesuatu seperti:
convert -crop 100x100+50+50 input_image.jpg output_image.jpg
di mana 100x100
adalah ukuran dari persegi panjang akhir dan 50x50
yang mengimbangi .
convert -thumbnail 100x100+50+50 input_image.jpg output_image.jpg
, untuk info lebih lanjut, periksa respons Igancio Vazquez untuk contoh atau periksa dokumentasi
Perintah ini memotong kuadrat dan kemudian mengubah ukuran menjadi 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
Opsi lainnya tersedia di sini: http://www.imagemagick.org/Usage/thumbnails/#square