2016-07-10 2 views
1

나는Android에서 PNG 인코딩의 이미지 품질을 제어 할 수 있습니까?

bitmap.compress(Bitmap.CompressFormat.PNG, quality, outStream); 

와 PNG로 비트 맵 변환 후 파일을 공유하기 위해 노력하고있어. documentation에 따르면 quality 매개 변수는 PNG 형식으로 무시됩니다.

비트 맵을 무손실 형식 임에도 불구하고 PNG로 변환하는 동안 이미지 품질을 제어 할 수 있습니까?

공유 할 이미지에 투명성이 없음을 고려하여 JPEG로 이동해야합니까? 반면에, 이미지의 일부분 (약 30-40 %)은 같은 색깔로 채워져 있습니다. PNG는 잘 알고 있습니다.

+0

PNG에 품질 요소 개념이 있다는 것을 알지 못합니다. – CommonsWare

답변

2

PNG에는 품질 요소가 없습니다. PNG 압축은 무손실입니다 (즉, 품질은 항상 100 %입니다).

그러나 이미지 수를 압축 할 수 있도록 앤티 앨리어싱 등을 사용하지 않고 색상 수와 투명도를 줄이는 등의 작업을 수행하여 이미지 압축률을 압축기로 전달하기 전에 이미지 품질을 줄일 수 있습니다.

나중에 pngquant, pngcrush, imagemagick/graphicsmagick, zopflipng 또는 optipng와 같은 별도의 최적화 프로그램을 사용하여 PNG 파일을 다시 압축 할 수도 있습니다.

imagemagick/graphicsmagick은 PNG 압축을위한 "품질"값을 가지고 있지만 JPEG 파일과는 다른 의미를 가지고 있음을 유의하십시오 (높은 PNG "품질"은 일반적으로 더 나은 압축을 의미하지만 이미지 모양에는 변화가 없음).