Yanıtlar:
Bu, “Resmin Sığdırılması İçin Küçük Resim” başlıklı resmi ImageMagick belgelerinde açıklanmıştır :
Alternatif olarak, görüntüyü istediğimiz küçük resim boyutuna sığdırmak yerine çıkarmak yerine, görüntünün son boyuta uymayan kısımlarını kesmektir.
Elbette bu, orijinal görüntünün bazı kısımlarını, özellikle görüntünün kenarlarını gerçekten kaybettiğiniz anlamına gelir, ancak sonuç, görüntünün orta kısmının büyütülmüş bir küçük resmidir. Bu genellikle (ancak her zaman değil) görüntünün ana konusudur, bu nedenle pratik bir küçük resim oluşturma yöntemidir.
IM v6.3.8-3'ten itibaren, bunu kolaylaştırmak için özel yeniden boyutlandırma seçeneği '^' bayrağı eklendi. Bu bayrağı kullanarak sadece yeniden boyutlandırtıktan sonra görüntünün istenen boyutu aşan kısımlarını keseriz.
Ve bir örnek komut bağlamında:
convert -define jpeg:size=200x200 hatching_orig.jpg -thumbnail 100x100^ \
-gravity center -extent 100x100 cut_to_fit.gif
Ignacio doğru belgelerle bağlantılı, ancak kolaylık olması için buraya satır içi yapıştıracağım:
convert -define jpeg:size=200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 thumbnail.jpeg
Benzer şekilde, aşağıdakiler GraphicsMagick içindir:
gm convert -size 200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 +profile "*" thumbnail.jpeg
Açıklama:
-size 200x200
jpeg kod çözücüye yalnızca bu çözünürlüğe ihtiyacımız olduğunu söyler, böylece hafızadan tasarruf edebilir ve kaynak görüntüyü daha hızlı okuyabilir-thumbnail 100x100^
en kısa kenarı 100 yaparak hızlı yeniden boyutlandırma- gravity center
sonraki işlemi ortala-extent 100x100
görüntüyü 100x100 tuvale uygulayın+profile "*"
metainfo'yu jpeg'e kaydetmeyin (elde edilen görüntüyü daha küçük yapar)Bunu yapmanın daha basit bir yolu:
Aşağıdaki komut, daha küçük olanı 100 piksele yeniden boyutlandırır ve 100x100 kare boyutunda bir kırpma yapar -strip
Dosya boyutunu küçültmek için bir komut ekleyebilirsiniz .
convert original.jpg -resize "100^>" -gravity center \
-crop 100x100+0+0 -strip thumbnail.jpg
Diğerlerinden farklı olarak, hafızadan tasarruf etmeye çalışmıyor. Bunun yerine, istediğinizi yapar ve daha fazlası yok. Ayrıca, görüntülerin kalitesini yükseltmez.
Kesin boyutta küçük resimler oluşturmak için graphicsmagick kullanıyorum ancak görüntüyü, çıkıntıyı kırpmak yerine bir dama tahtası ile dolduruyorum.
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
Sanırım şöyle bir şey arıyorsun:
convert -crop 100x100+50+50 input_image.jpg output_image.jpg
burada 100x100
bir boyut son dikdörtgen ve ofset .50x50
convert -thumbnail 100x100+50+50 input_image.jpg output_image.jpg
, daha fazla bilgi için Igancio Vazquez'in bir örneğini yanıtlayın veya belgelere bakın
Bu komut bir kareye kırpıp 150x150 olarak yeniden boyutlandırıyor
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
Burada daha fazla seçenek mevcuttur: http://www.imagemagick.org/Usage/thumbnails/#square