Качество png картинки

php графика png gd


Как сделать чтобы при сохранении пнг картинок они были низкого качества? А то после обработки картинка 150х150весит 30кб((
Где ошибка может быть?
<?php
$max_width=400;
$max_height=400;
$screename='bla.png';
$image=imagecreatefrompng('../data/tmp/'.$screename);
$width=imagesx($image);
$height=imagesy($image);
$x_ratio = $max_width/$width;
$y_ratio = $max_height/$height;

if(($width<=$max_width)&&($height<=$max_height)){
$tn_width=$width;
$tn_height=$height;
}elseif(($x_ratio*$height)<$max_height){
$tn_height=ceil($x_ratio*$height);
$tn_width=$max_width;
}else{
$tn_width=ceil($y_ratio*$width);
$tn_height=$max_height;
}

$screen=ImageCreateTrueColor($tn_width,$tn_height);

imagecopyresampled($screen, $image, 0, 0, 0, 0, $tn_width,$tn_height,$width,$height);
imagedestroy($image);
$screen=img_copyright($screen);
imagecolortransparent($screen, 0);
imagepng($screen,'../data/screen/'.$screename);
imagedestroy($screen);
?>
Ответы:
тут дело не в коде, а в самой картинке. Советую тебе вместо .png использовать .gif. Он должен весить меньше, а "прозрачность" картинки может сохраниться (если таковая есть). Удачи!
PNG изображение размера 150x150 весит примерно:
37 кб (32-бит цвет)
32 кб (24-бит цвет)
17кб  (8-бит цвет)
в твоём примере цвет скорее всего задаётся в строчке
$screen=ImageCreateTrueColor($tn_width,$tn_height);
видимо здесь "TrueColor" указывает на использование 24 бит


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.