ImageMagick (GraphicsMagick)을 사용하여 PNG의 캔버스 크기를 어떻게 변경합니까? (투명도로 채우는 방법?)


9

또는 정사각형이 아닌 PNG를 가져 와서 이미지의 "휴면"을 투명하게 "채워서"정사각형 이미지의 원본 이미지가 정사각형의 중앙에 오도록하려면 어떻게해야합니까?

궁극적으로, 내가 원하는 것은 모든 크기의 GM 지원 형식의 이미지를 가져 와서 가로 세로 비율이 유지되고 정사각형이 아닌 경우 투명도가 채워진 축소 된 PNG (예 : 두 치수 중 최대 40 픽셀)를 만드는 것입니다 원본 이미지 및 이미 준비된 40x40 PNG 투명도 마스크가 적용된 상태.

이미 화면 비율을 낮추고 유지하는 방법을 알고 있습니다. 이미 컴포지트를 적용하는 명령이 있습니다. 내 누락 된 부분은 정사각형이 아닌 정사각형 이미지입니다 (투명도로 채 웁니다).

단일 명령 선호; 허용되는 다중 명령 체인.

(편집하다)

추가 정보 : 다음은 내가 사용하는 복합 명령입니다.

gm composite -compose copyopacity mask.png source-and-target.png source-and-target.png

여기서 mask.png에는 source-and-target.png를 유지하려는 흰색 픽셀과 source-and-target.png를 제거하고 투명하게하려는 투명 픽셀이 있습니다.

답변:


7

이 명령은 모든 크기의 입력 파일을 가져 와서 40x40 정사각형 및 패드에 가장 잘 맞습니다.

convert \
   original.png \
  -thumbnail '40x40>' \
  -background transparent \
  -gravity center \
  -extent 40x40 \
  -compose Copy_Opacity \
  -composite mask.png \
   original-resized.png

gravity옵션을 사용하면 이미지가 양방향으로 중앙에 배치되고 transparent픽셀이없는 곳에서 사용됩니다. 그런 다음 합성은mask.png


그래서 우리는 한 번에 그것을 할 수 composite없습니까?
Pistos

@ 피스 토스 당신이 합성물로 무엇을하고 있는지 잘 모르겠습니다. 크기를 조정 한 후에 축소판의 일부를 숨기거나 표시하는 투명 마스크입니까? 지금까지 가지고있는 명령 순서 를 편집 하고 추가 할 수 있습니까?
Paul

@ 피스 토스 가장 좋은 방법은 다른 방법 대신에 -convert로 합성하는 것입니다. 위의 답변을 업데이트했습니다.
Paul

가까이 있지만, 꽤는 아닙니다. 귀하의 명령은 그대로 작동하지 않았으며 조정하더라도 작동하지 않았습니다. 괜찮아, 두 단계로해볼 게 마지막으로 작동하는 CLI 단계를 얻은 후에 여기에서 내용을 업데이트하겠습니다. 다시 감사합니다.
Pistos

내 경험으로는 일반적으로 고품질 이미지가 생성되기 때문에 옵션 -filter Catrom앞에 추가 할 것 thumbnail입니다.
thdoan

6

하나의 폴더에서 모든 PNG를 변환하는 하나의 명령 :

mogrify \
 -resize 50x50 \
 -background transparent \
 -gravity center \
 -extent 50x50 \
 -format png \
 -path resized \
 *.png

mogrify 는 ImageMagick 패키지의 명령입니다. 먼저 출력 디렉토리를 작성해야합니다.


좋은데 BTW, 모험적이라고 생각 -path resized되면 파일을 편집하지 않아도 됩니다.
aaronk6

대단하다. 내 설치 (OSX, 1.3.35) 그것의에 gm mogrify대신의 -path resized사용-create-directories -output-directory resized
블레이크

1

여기에 내가 함께했던 것이 있습니다. 2 단계 프로세스 :

gm convert \
  -thumbnail '40x40>' \
  -background transparent \
  -gravity center \
  -extent 40x40 \
   original.png \
   intermediate.png

gm composite \
  -compose in \
   intermediate.png \
   mask.png \
   out.png

mask.png는 내가 지키고 싶은 흰색 픽셀이고 마스크하고 싶었던 투명한 픽셀입니다 (삭제).

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