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를 사용하거나 다른 응용 프로그램에서이를 호출 할 수 있습니다.
유용한 링크
답변
“응용 프로그램에서”이 명령을 실행한다고 언급했으며 이로 인해이 응용 프로그램을 작성했거나 유지 관리 중이라고 생각합니다. 즉, 여러 언어에 대한 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