2010-11-19 2 views
12

ImageMagick은 꽤 큰 PNG를 만듭니다. GraphicsMagick은 훨씬 더 좋지만, 변환과 함께 사용하여 가장 작은 파일 크기의 PNG를 얻는 최상의 옵션을 계속 찾고 있습니다.convert (ImageMagick 또는 GraphicsMagick) 옵션은 가장 작은 (파일 크기) PNG를 생성합니까?

내가 여기 large png with a small filesize 있고, IM 통해 전달 내가 그 파일 크기에 도달하자 혼자가 작아 질 수 없었습니다 변환합니다. GM으로 전환하면 약간 작아 질 수 있지만 일반적으로 개선을 찾고 있습니다. 어떤 이미지이 있습니다.

gm convert -quality 95 a_png.png gm.png 
convert -quality 95 -depth 8 a_png.png im.png 
gm identify * 

a_png.png PNG 2560x2048+0+0 PseudoClass 256c 8-bit 60.1K 0.000u 0:01 
gm.png[1] PNG 2560x2048+0+0 PseudoClass 256c 8-bit 60.0K 0.000u 0:01 
im.png[2] PNG 2560x2048+0+0 DirectClass 8-bit 130.2K 0.000u 0:01 

변환을위한 옵션으로는 가장 작은 PNG 파일 크기가 생성됩니까?

(예, OptiPNG, PNGOUT 및 Pngcrush을 잘 알고있어.하지만 난에 될 일이 모든 * nix에서 스크립트 상자에 문제없이 사용할 수 있습니다 뭔가 후입니다.)

+1

는 1x1 PNG8로 변 것들은. –

+0

컴퓨터에서 스크립트를 실행할 수 있으면 파일을 컴퓨터에 올려 놓을 수도 있습니다. 어떻게 pngcrush를 정적으로 연결하고 사용중인 * nix 상자에 두는 것이 좋습니까? – thejh

+0

@thejh, 예, 할 수 있습니다. 그러나 프로덕션 환경에서는 허용되지 않는 경우가 많습니다. 게다가 IM/GM은 가장 널리 사용되는 그래픽 패키지 일 가능성이 높습니다. 따라서 올바른 옵션을 찾는 것이 문제가 될 것입니다 ... –

답변

11

당신처럼 보이는 그리고 나도 같은 대답을 찾고있다. 불행히도 GraphicsMagick에 대한 지식이 많으면 많은 사람들이있는 것처럼 보이지 않습니다. 이것은 내가 지금까지

는 품질 운영자가 제대로 JPEG의 이외의 모든 이미지에 대해 작동하지 않습니다 배운 것입니다. 나를 위해 PNG 및 GIF에서 사용할 때 파일 크기가 커졌습니다.

나는 그들의 크기를 줄이기 위해 내 PNG 및 GIF 파일에 이런 짓을했는지 : 색상이 감소 할 때

gm convert myImage.png +dither -depth 8 -colors 50 myImage.png 
  • +dither은 이미지의 디더링을 중지합니다. 대부분의 PNG 파일이 이미 8

  • -colors 50은 50 이미지의 색상 수를 줄여 깊이만큼

  • -depth 8 아마 불필요 (이 파일 크기를 줄일 수),이 정말 줄일 수있는 유일한 방법입니다 PNG 또는 GIF와 같은 무손실 형식으로 저장된 이미지의 크기

분명히 최고의 이미지 품질/크기 비율은 현재 깊이와 색상 수를 모른 채 이미지 심도 또는 색상 수를 줄일 수 있습니다. 이 정보를 확인하려면 다음을 수행하고 있습니다.

gm identify -format "file_size:%b,unique_colors:%k,bit_depth:%q" myImage.png 

내 이미지에; 이 GraphicsMagick는 항상 적어도 255로 감소 색상을 줄일 때 문제가

file_size:100.7k,unique_colors:13455,bit_depth:8 

반환, 그래서 당신은 예를 들어 300 색상 수를 설정할 수 없습니다. 또한 PNG 파일의 알파 채널에 문제가있는 것으로 보입니다. 이미지에 투명도가 있으면 색상을 줄이면이 ​​색상이 투명하게 바뀝니다. imagemagick으로는이 작업을 수행하지 않습니다.

+0

또한 JEPGS의 경우 "+"프로파일을 추가하여 이미지의 모든 프로파일을 제거 할 수 있습니다. 이렇게하면 이미지 크기가 약간 줄어 듭니다. 우리 모두가이 문제에 대한 지식을 공유 할 수있는 동일한 일을하려고하기 때문에 나는 생각합니다. 추가 정보를 찾거나 질문이 있으면 메시지를 보내주십시오. 감사. – toc777

+0

유익한 게시물 toc777 주셔서 감사합니다. 하나의 수정 : - 품질 확실히 PNGs의 파일 크기에 차이를 만들지 만 jpeg에 대한 세부 작업에 대한 사양과 다른 작업을 수행, 나는 최소 png을 만들기 위해 - 품질 95 발견했습니다. 설명 할 bash 한 라이너가 있습니다 : {1..100}에 있습니다. GM 할 변환 big_yet_small.png -quality $ i $ i.png; done –

+0

GM 투명성 버그가 발생했습니다. 그것은 더 큰 이미지 위에서 방아쇠를 당기고, IM으로 먼저 크기를 조정 한 다음 GM으로 처리하는 것이 해결 방법입니다. 버그 보고서를 제출해야합니다 ... –

6

난 그냥 내가 업데이 트됩니다, 그래서 GraphicsMagick와 ImageMagick이 심각한 문제가 다시이 질문을 가로 질러왔다. 그들은 tRNS 청크를 사용하여 PNG 이미지를 작성할 수 없습니다. 즉, tRNS 청크가있는 이미지를 읽은 다음 쓰려고하면 이미지가 훨씬 커집니다. GM은 이미지를 압축하는 가장 좋은 도구는 아닙니다. Image/GraphicsMagick을 사용한 후에 PNG를 다시 압축하려면 OptiPNG와 같은 별도의 도구를 사용해야합니다.이미지에서 GraphicsMagick을 실행 한 후 OptiPNG를 사용할 때 최대 60 % 더 작은 파일을 가져옵니다.

또한 RGBA 이미지 및 비트 심도와 관련된 문제가 발생했는지 궁금합니다. 일부 이미지의 경우 "잘못된 비트 심도"예외가 발생합니다. 이유가 전혀 없습니다.

2

커맨드 라인에서 수행 할 방법을 찾지 못했지만이 무료 웹 사이트 (http://tinypng.org/)는 훌륭한 작업을 수행 할 수있었습니다. 테스트 이미지의 71 % 감소, 최종 크기는 29 % 원래의 한 번에 20 개의 이미지를 줄 수있는 것 같습니다. 나는 그들이 어떻게하는지 조사하고있다.

http://tinypng.org/

+8

[pngquant] (http://pngquant.org)는 tinypng의 명령 줄 도구입니다. – Kornel

+1

나는 그것이 자유다고 woudn't ... – tomericco

+1

아마 2013 년에 무료였습니다. – 23inhouse