ImageMagick이 포함 된 정사각형 미리보기 이미지 (변환)?


답변:


19

이 내용은 공식 ImageMagick 설명서의 “축소판 잘라 내기 ”에 설명되어 있습니다 .

대안은 원하는 특정 썸네일 크기에 맞게 이미지를 채우는 것이 아니라 최종 크기에 맞지 않는 이미지 부분을 잘라내는 것입니다.

물론 이것은 원본 이미지의 일부, 특히 이미지의 가장자리를 실제로 잃어 버리는 것을 의미하지만 결과는 이미지 중앙 부분의 축소판입니다. 일반적으로 이미지의 주요 주제는 아니지만 항상 썸네일을 만드는 실질적인 방법입니다.

IM v6.3.8-3부터는 특수 크기 조정 옵션 플래그 '^'가 추가되었습니다. 이 플래그를 사용하여 크기를 조정 한 다음 원하는 크기를 초과하는 이미지 부분을 잘라냅니다.

그리고 예제 명령의 맥락에서 :

convert -define jpeg:size=200x200 hatching_orig.jpg  -thumbnail 100x100^ \
          -gravity center -extent 100x100  cut_to_fit.gif

7
아마도 ... 어떤 유형의 설명일까요?
Hello71

나는 Ignacio의 포인트 빈 답변을 좋아합니다 :-)
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

55

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에 메타 정보를 저장하지 마십시오 (결과 이미지를 더 작게 만들기)

3
커맨드 라인 (그래픽스 magick one)에서 사용했을 때 중앙에 그림이 생겼고 두 개의 사이 드러가 흰색으로 채워졌습니다. 문제가 된 것은 아닙니다. 내가 뭔가 잘못하고 있습니까?
Umut Benzer 2012 년

2
창을 사용하는 경우 ^ 문자를 두 번 눌러 이스케이프해야합니다. 예 :
George Filippakos

3
왜 100x100 크기가 아닙니까?
Hello World

@HelloWorld : "Imagemagick Geometry"를 읽으십시오. 구글, 쉽게 찾을 수 있습니다.
saurabheights 2012 년

11

그것은 더 간단한 방법입니다.

다음 명령은 작은면의 크기를 100 픽셀로 조정하고 100x100 정사각형을 자릅니다. -strip파일 크기를 줄이기 위한 명령을 추가 할 수 있습니다 .

convert original.jpg -resize "100^>" -gravity center \ 
                     -crop 100x100+0+0 -strip thumbnail.jpg

다른 것과 달리 메모리를 절약하려고하지 않습니다. 대신, 그것은 당신이 원하는 것을 더 이상하지 않습니다. 또한 이미지가 업 스케일되지 않습니다.


정답이있는 질문에 늦은 답변을 추가 할 때 다른 답변과 비교하여 독특하고 새로운 답변을 제공하는 이유를 충분히 설명하는 것이 도움이됩니다.
Jason Aller

2
고마워, OP가 이것에 대해 전혀 언급하지 않을 때 다른 사람들이 왜 메모리를 절약하려고 그들의 답변을 지나치게 복잡하게했는지 모르겠다.
confused00

2

정확한 크기의 축소판을 생성하기 위해 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

1

나는 당신이 다음과 같은 것을 찾고 있다고 생각합니다 :

convert -crop 100x100+50+50 input_image.jpg output_image.jpg 

여기서 100x100는 IS 크기 최종 직사각형의 오프셋 .50x50


그 이미지는 자르지 만 썸네일은 만들지 않습니다.
marioosh

1
@marioosh : 이해가 안됩니다. convert -thumbnail 100x100+50+50 input_image.jpg output_image.jpg자세한 정보는 Igancio Vazquez 응답을 확인하거나 문서를
pconcepcion

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.