PNG 파일의 DPI를 변경하는 방법? (ImageMagick이없는 명령 행에서) ImageMagick이 설치되어

PNG 이미지 파일에서 DPI를 변경하는 방법을 찾고 있습니다. ImageMagick을 사용하면 쉽습니다.

$ convert -density 150 -units pixelsperinch file.png file.png

문제는 ImageMagick이 설치되어 있지 않은 여러 VM에서 실행되는 응용 프로그램 에서이 명령을 실행한다는 것입니다. 업그레이드 패키지를 이러한 VM으로 푸시 할 수 있지만 ImageMagick의 경우 업그레이드 번들에 약 30MB가 추가되므로 사용 사례에 비해 너무 많습니다.

짧은 이야기 : 작은 (패키지 크기와 같은) 명령 줄 도구를 사용하여 PNG 파일의 DPI를 변경할 수있는 방법이 있습니까?

선택적으로 원시 이미지 파일에서 바이트를 변경해도 원하는 위치를 알면 괜찮습니다.



답변

2.10MB로 충분합니까? 그렇다면 NConvert 와 다음과 같은 배치 명령을 사용하십시오.

nconvert -out png -dpi 150 -keepdocsize -keepfiledate mysource.png

NConvert는 무엇입니까?

XnView는 GUI 기반 응용 프로그램으로, 그래픽 사용자 인터페이스를 사용하여 이미지를 변경하고 조작 할 수 있습니다. NConvert는 XnView와 거의 동일한 기능을 수행하지만 명령 줄 도구이며 그래픽 사용자 인터페이스가 없습니다. 배치 스크립트에서 NConvert를 사용하거나 다른 응용 프로그램에서이를 호출 할 수 있습니다.

유용한 링크

  • 초보자 가이드Wiki 시작하는 몇 가지 예
  • 사용 가능한 명령 줄 매개 변수를 확인하는 도움말 파일 (pastebin에 업로드)
  • Nconvert를 사용하는 그래픽 프런트 엔드는 XnConvert 입니다. 이것을 사용하여 Nconvert 배치 파일을 생성 및 내보내기
  • Xnconvert 및 Nconvert 포럼

답변

“응용 프로그램에서”이 명령을 실행한다고 언급했으며 이로 인해이 응용 프로그램을 작성했거나 유지 관리 중이라고 생각합니다. 즉, 여러 언어에 대한 ImageMagick API 가 있으며 그 중 하나를 사용하여 기존 프로그램에 기능을 바로 추가 할 수 있습니다. 패키지 크기의 증가는 응용 프로그램이 작성되는 언어와 라이브러리를 정적으로 또는 동적으로 연결하는지 여부에 따라 다르지만 30MB보다 크게 작을 것이라고 생각합니다.

다른 옵션은 전체 ImageMagick 패키지를 포함하지 않는 것입니다. 당신은 다운로드 할 수 있습니다 ImageMagick이 zip 파일 (만 13메가바이트 BTW입니다), 그냥 추출 convert도구를과의 의존성과 VM의 해당 배포 할 수 있습니다. 도구 의 종속성이 무엇인지 확인하는 데 사용할 수있는 Dependency Walker 라는 convert도구가 있습니다.


답변

netpbm pnmtopng 프로그램 -size에서 플래그를 사용하십시오 . 사용 된 단위는 미터당 픽셀입니다. 다음 예제는 newfile.png를 300dpi로 설정합니다.

pngtopnm <oldfile.png | pnmtopng -size='11811 11811 1' >newfile.png


답변

글쎄, 당신은 잠재적으로 파이썬 스크립트를 사용할 수 있습니다.

#!/usr/bin/python
im = Image.open("in.png")
nx, ny = im.size
im2 = im.resize((int(nx*1.5), int(ny*1.5)), Image.BICUBIC)
im2.save("out.png")

소스 .


답변

이에 적합한 Image Magick “convert”명령 행은 -resample 인수를 사용하는 것입니다.

convert image.png -resample 150x150 -units pixelsperinch ../ImagesAdjusted/image.png


답변