2010-06-02 10 views
6

100x100 96dpi 썸네일로 변환해야하는 1000x1000 300dpi 이미지가 있습니다. 어떻게 ImageMagick에서 이것을합니까? 가능한 가장 작은 크기의 파일 크기를 사용하고 있습니다. 이 같은ImageMagick help - DPI를 변경해야합니다

이렇게 뭔가 :

convert myimage.png -quality 100 -resize 100 PNG8:mynewimage.png 

는 .... 치수를 변경하지 않습니다 만, 여전히 DPI를 유지한다. 이 값을 96dpi로 변경하면 으로 작게 설정해야합니다.

나는 -density 등을 시도했지만 저에게 맞지는 않습니다. 어쩌면 명령을 잘못된 순서로 두거나 잘못된 매개 변수를 전달했을 수 있습니다. 어떤 도움이라도 대단히 감사합니다. 감사.

+0

변환하지 않음 : convert myimage.png -units PixelsPerInch -density 96x96 -quality 100 -resize 100 PNG8 : mynewimage.png – StackOverflowNewbie

답변

5

짧은 버전은 100x100 이미지를 PNG 형식으로 사용하려는 경우 줄이 가장 작은 파일 크기로 이미 최상의 품질을 제공합니다. a) 손실이 많은 형식 (JPEG)으로 코딩하거나 b) 이미지의 색상 심도를 낮추지 않으면 그 이상을 수행 할 수 없습니다.

약간 더 긴 설명을 원하면 위키피디아에서 "DPI (Dots per inch)는 공간 인쇄 또는 비디오 도트 밀도의 척도입니다. 특히 도트 내에서 한 줄에 배치 할 수있는 개별 도트 수 1 인치 (2.54cm) DPI 값은 이미지 해상도와 관련되는 경향이 있지만 은 간접적으로과 관련됩니다. "

DPI는 더 작은 파일 크기를 얻는 것과 아무 관련이 없습니다. 100x100 이미지는 300dpi 화면에서 보든 96dpi 화면에서 보든 (100dpi 화면에서는 작게 보임) 100x100 픽셀을 측정합니다. 정보의 양은 어느 쪽이든 같습니다.

"등의 래스터 이미지로 포스트 스크립트, PDF, WMF, 그리고 SVG와 같은 (읽기) 벡터 형식을 렌더링하는 동안 래스터 이미지를 인코딩"때만 작동하기 때문에 "-density는"도움이되지 않습니다. 이러한 형식은 해상도에 독립적이므로 이미지를 래스터 화하려는 DPI를 ImageMagick에 알리는 것이 좋습니다. 그러나 DPI는 사용할 출력 장치의 기능이어야합니다. 귀하의 경우에는 이미 래스터 화 된 이미지로 시작하기 때문에 아무런 쓸모가 없습니다.

PNG는 무손실 형식이므로 -quality 매개 변수는 zlib 압축 수준 만 제어합니다. 이미지 크기의 모든 이득은 최소화되지만 사용 가치가 있습니다.

+0

실제로'-density' 옵션은 지원하는 뷰어에 차이를 만듭니다. 어쩌면이 질문에 대한 답변이 변경 되었기 때문에 변경되었을 수도 있지만 [docs] (http://www.imagemagick.org/script/command-line-options.php#density)에 따르면 : "'-density' 옵션은 * 속성 * 및 기본 래스터 이미지를 변경하지 않습니다. " Corel Draw와 같은 뷰어/도구에서 이미지를 여는 경우 현재 캔버스의 DPI를 기준으로 이미지를 표시하는 방법을 결정할 때이 속성을 고려합니다. –