$con_width=100;//желаемая ширина картинки
$fn="image.png";//Адрес картинки
$src=imagecreatefrompng($fn);//Загузка картинки в среду РНР
$width=imagesx($src);//Ширина
$height=imagesy($src);//Высота
header("Content-type: image/png");//Указываем, что надо выводить картинку PNGif($width>$con_width){//Если ширина больше указаной
$koef=$width/$con_width;//Ищем коефициент уменьшения
$wd=round($width/$koef);//Находим ширину готового изображения
$hd=round($height/$koef);//Находим высоту готового изображения
$dest=imagecreatetruecolor($wd,$hd);//Создаем пустое полноцветное изображение с нужными размерами
imagecopyresized($dest, $src,0,0,0,0, $wd, $hd,$width, $height);//Копируем картинку с преобразованием размеров в $dest }else{//Если не требуется уменьшение
$dest=imagecreatefrompng($fn);//Загузка картинки в среду РНР};
imagepng($dest);//Рисуем картинку
imagedestroy($dest);//Чистим буфер
imagedestroy($src);//Чистим буфер
зачем мне изменение размера (файла), это я и сам могу)
я же написал, оптимизация..
уже разобрался. в imagepng можно передать третий аргумент - сжатие, от 0 до 9, 0 - без сжатия, 9 - максимально.