명령줄에서 PNG 파일의 크기를 조정하는 방법은 무엇입니까?

명령줄에서 PNG 파일의 크기를 조정하는 방법은 무엇입니까?

1.pngcurrent라는 이미지가 있다고 가정해 보겠습니다.

500px : height
1000px : width

다음과 같이 조정하고 싶습니다.

50px : height
100px : width

JPG가 아닌 PNG 형식으로 출력해야 합니다. 예를 들어 주시면 감사하겠습니다.

답변1

나는 convert또는 mogrify에서 사용할 것입니다이미지 마술사모음곡.

$ convert -resize 100x50 1.png 2.png

# or #

$ mogrify -resize 100x50 1.png

convert별도의 출력 파일 이름을 사용하여 별도의 파일을 만듭니다.
mogrify별도의 출력 파일 이름을 사용하지 마십시오.

답변2

소스 이미지와 대상 이미지의 가로 세로 비율이 같기 때문에 지금까지 얻은 답변은 이 특별한 경우에 적용됩니다. 그러나 어떤 크기로든 변경하고 싶다면,그들은 실패할 것이다:

$ file foo.png 
foo.png: PNG image data, 1000 x 500, 8-bit/color RGB, non-interlaced
$ convert -resize 100x50 foo.png bar.png
$ file bar.png 
bar.png: PNG image data, 100 x 50, 8-bit colormap, non-interlaced

위에서 볼 수 있듯이 이미지 비율을 변경하지 않고도 간단한 변환이 잘 작동합니다. 하지만 변경하고 싶다면 어떻게 해야 할까요?

$ convert -resize 200x50 foo.png bar.png
$ file bar.png 
bar.png: PNG image data, 100 x 50, 8-bit colormap, non-interlaced

따라서 배율을 변경하면 위 명령이 실패합니다. convert이미지를 이런 방식으로 강제로 변경하려면 !기하학 사양의 끝에 a를 추가해야 합니다(그리고 이는 !많은 쉘의 특수 문자이므로 로 이스케이프해야 합니다 \!).

$ convert -resize 200x50\! foo.png bar.png
$ file bar.png 
bar.png: PNG image data, 200 x 50, 8-bit colormap, non-interlaced

답변3

이를 위해 Imagemagick을 사용하십시오.

올바른 사용법은 매뉴얼 페이지를 읽어보세요. 하지만 인수를 전달하면 작동할 것입니다.

convert 1.png -resize 50x100 1-resized.png

답변4

ImageMagick의 대체품은 고대 netpbm입니다.

pngtopnm input.png | pnmscale -reduce 10 | pnmtopng > output.png

관련 정보