포토샵으로 만든 jpg, png gd로 용량줄이기

.진짜 별거 없지만, gd 에 한번 들어갔다 나오기만하면 용량이 팍 줄어듭니다.
png 의 경우 사용된 색만으로 최적화됩니다. (포토샵에서는 24b 32b 256 색 3가지만 지원)
jpg 도 무슨 압축알고리즘을 쓰는지 화질에 변화없이 용량만 줄어듭니다.

쉘스크립트용으로 하나 만들어서 씁니다.
find . -name “*.png” -exec png2png {} ;

filename : png2png
#!/usr/bin/php
if(!preg_match(‘/^[23]$/’, $_SERVER[‘argc’]))
exit(‘usage : png2png filename alphaoff’);
$im = imagecreatefrompng($_SERVER[‘argv’][1]);
if($_SERVER[‘argc’] == 2)
imagesavealpha($im, 1);
imagepng($im, $_SERVER[‘argv’][1]);
?>

filename : jpg2jpg
#!/usr/bin/php
if($_SERVER[‘argc’] != 2)
exit(‘usage : jpg2jpg filename’);
$im = imagecreatefromjpeg($_SERVER[‘argv’][1]);
imagejpeg($im, $_SERVER[‘argv’][1], 100);
?>
# 수정 : jpeg 함수는 기본이 75 압축이었습니다. 최고 화질 100으로 잡아도 용량은 줄어듭니다.

imagesavealpha() 함수는 여기서 gd로 검색하면 4.3.1 패치 나옵니다.

—————-
용량비교
-rw-r–r– 1 root root 98 2003-03-28 17:41 2d_960018_0_1.png
-rw-r–r– 1 root root 168 2003-03-28 17:41 2d_960018_0_2.png

-rw-rw-rw- 1 user group 1056 Mar 28 17:15 2d_960018_0_1.png
-rw-rw-rw- 1 user group 1105 Mar 28 17:15 2d_960018_0_2.png

(256색과 16색의 비교이긴 하지만, 이렇게 안쓰는 색을 없애줄만한 마땅한 프로그램이 없지요.)