답변:
이 내용은 공식 ImageMagick 설명서의 “축소판 잘라 내기 ”에 설명되어 있습니다 .
대안은 원하는 특정 썸네일 크기에 맞게 이미지를 채우는 것이 아니라 최종 크기에 맞지 않는 이미지 부분을 잘라내는 것입니다.
물론 이것은 원본 이미지의 일부, 특히 이미지의 가장자리를 실제로 잃어 버리는 것을 의미하지만 결과는 이미지 중앙 부분의 축소판입니다. 일반적으로 이미지의 주요 주제는 아니지만 항상 썸네일을 만드는 실질적인 방법입니다.
IM v6.3.8-3부터는 특수 크기 조정 옵션 플래그 '^'가 추가되었습니다. 이 플래그를 사용하여 크기를 조정 한 다음 원하는 크기를 초과하는 이미지 부분을 잘라냅니다.
그리고 예제 명령의 맥락에서 :
convert -define jpeg:size=200x200 hatching_orig.jpg -thumbnail 100x100^ \
-gravity center -extent 100x100 cut_to_fit.gif
Ignacio는 올바른 문서에 연결되었지만 편의를 위해 여기에 인라인으로 붙여 넣습니다.
convert -define jpeg:size=200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 thumbnail.jpeg
마찬가지로, 다음은 GraphicsMagick에 대한 것입니다.
gm convert -size 200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 +profile "*" thumbnail.jpeg
설명:
-size 200x200
JPEG 디코더에이 해상도 만 필요하므로 메모리를 절약하고 소스 이미지를 더 빨리 읽을 수 있습니다.-thumbnail 100x100^
가장 짧은면 100을 만드는 빠른 크기 조정- gravity center
다음 작업의 중심-extent 100x100
이미지를 100x100 캔버스에 적용+profile "*"
jpeg에 메타 정보를 저장하지 마십시오 (결과 이미지를 더 작게 만들기)그것은 더 간단한 방법입니다.
다음 명령은 작은면의 크기를 100 픽셀로 조정하고 100x100 정사각형을 자릅니다. -strip
파일 크기를 줄이기 위한 명령을 추가 할 수 있습니다 .
convert original.jpg -resize "100^>" -gravity center \
-crop 100x100+0+0 -strip thumbnail.jpg
다른 것과 달리 메모리를 절약하려고하지 않습니다. 대신, 그것은 당신이 원하는 것을 더 이상하지 않습니다. 또한 이미지가 업 스케일되지 않습니다.
정확한 크기의 축소판을 생성하기 위해 graphicsmagick을 사용하고 있지만 오버행을 자르는 대신 바둑판으로 이미지를 채우고 있습니다.
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
나는 당신이 다음과 같은 것을 찾고 있다고 생각합니다 :
convert -crop 100x100+50+50 input_image.jpg output_image.jpg
여기서 100x100
는 IS 크기 최종 직사각형의 오프셋 .50x50
convert -thumbnail 100x100+50+50 input_image.jpg output_image.jpg
자세한 정보는 Igancio Vazquez 응답을 확인하거나 문서를
이 명령은 정사각형으로 자른 다음 크기를 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
더 많은 옵션을 사용할 수 있습니다 : http://www.imagemagick.org/Usage/thumbnails/#square