#1 2009.10.20 00:06

Fuelen
Участник
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

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

Как сделать чтобы при сохранении пнг картинок они были низкого качества? А то после обработки картинка 150х150весит 30кб((
Где ошибка может быть?

Код:

1
span style="color: #0000BB"><?php$max_height=356;$max_width=416;$screename=time().'.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);?>

Отредактировано Gemorroj (2009.10.20 22:17)


на хую вас вертів

Неактивен

#2 2009.10.20 00:27

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Качество PNG картинок

imagepng($screen, '../data/screen/'.$screename, 9);

Неактивен

#3 2009.10.20 01:13

Fuelen
Участник
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: Качество PNG картинок

Не работаетsad
К тому же в imagepng() не предусмотрен третий атрибут.


на хую вас вертів

Неактивен

#4 2009.10.20 01:29

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Качество PNG картинок

http://ru.php.net/imagepng
даже четвертый предусмотрен.

Неактивен

#5 2009.10.20 08:09

Fuelen
Участник
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: Качество PNG картинок

На пых.су только два...
Всё равно не работает ;(


на хую вас вертів

Неактивен

#6 2009.10.20 09:36

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Качество PNG картинок

версия php?
Добавлено спустя    23 секунды:
и что значит не работатет?

Неактивен

#7 2009.10.20 10:06

Fuelen
Участник
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: Качество PNG картинок

5.2.11
Добавлено спустя   1 минуту  42 секунды:
качество не меняет. Как была картинка 30кб после обработки этим кодом, так и осталась.


на хую вас вертів

Неактивен

#8 2009.10.20 11:13

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Качество PNG картинок

значит меньше и не сделаешь, перегоняй в gif.

Неактивен

#9 2009.10.20 12:30

Fuelen
Участник
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: Качество PNG картинок

Сделал сохранение из пнг в гиф.
Загрузил картинку пнг 8кб.
Стала 17кб гиф


на хую вас вертів

Неактивен

#10 2009.10.20 12:45

Fuelen
Участник
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: Качество PNG картинок

Функция наложения копирайта.
Но не думаю что через неё траблы

Код:

1
lt;?function img_copyright($img){if($copy=imagecreatefromstring(file_get_contents(HOME.'/images/copy.png'))){$img_x=imagesx($img);$img_y=imagesy($img);$copy_x=imagesx($copy);$copy_y=imagesy($copy);$w=intval(min($img_x/2.5,$copy_x,128));$h=intval(min($img_y/2.5,$copy_y,64));$x_ratio = $w/$copy_x; $y_ratio = $h/$copy_y; if (($copy_x <= $w) && ($img_y <= $h)){$dstW = $copy_x;$dstH = $copy_y;} elseif (($x_ratio * $copy_y) < $h){ $dstH = ceil($x_ratio * $copy_y);$dstW = $w;}else{$dstW = ceil($y_ratio * $copy_x);$dstH = $h;}imagecopyresampled($img, $copy, $img_x-$dstW, $img_y-$dstH, 0, 0, $dstW, $dstH, $copy_x, $copy_y);}return $img;}?>

Отредактировано Fuelen (2009.10.20 12:48)


на хую вас вертів

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.011 s