Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Потеря качества png файла после imagecreatefrompng() и imagepng() php.

Ответить
Настройки темы
Потеря качества png файла после imagecreatefrompng() и imagepng() php.

Пользователь


Сообщения: 124
Благодарности: 3

Профиль | Отправить PM | Цитировать


Изменения
Автор: maasja
Дата: 04-01-2011
Здравствуйте. возникла необходимость работать с png файлами через php с сохранением прозрачности. Только возникла одна проблема, потеря качества, и я боюсь что ее никак не решить..
Есть png файл "dimm.png" , есть php скрипт image.php следующего содержания:
Код: Выделить весь код
<?
header ("Content-type: image/png"); //Передаем браузеру mime-тип выводимых данных, зтп изображение.
$img=imagecreatefrompng('dimm.png'); // Создаем изображение из png файла.
imagesavealpha($img,true); // Сохраняем прозрачность.
imagepng($img); // Выводим рисунок в браузер.
?>
теперь открываем в двух соседних вкладках одно и тоже изображение, только один рисунок будет открыт через php скрипт, а другой напрямую. Если переключать между двумя этими картинками (вкладками Ctrl+Tab), то заметно, что качество рисунка "прогнанного" через скрипт хуже (появляются полоски). Как сохранить качество? Очень надеюсь что это возможно как-то исправить.
Всем большое спасибо.

Отправлено: 05:28, 26-12-2010

 

Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


тут можно порулить версиями GD (и др. библиотеками), и 3 параметром в imagepng (который качество)
PHP код: Выделить весь код

imagepng($imgnull0);//5.1.2+ 


больше имхо никак.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:18, 26-12-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 124
Благодарности: 3

Профиль | Отправить PM | Цитировать


Sham, Спасибо, но это не помогло. Я кончено понимаю, что GD библиотека, это не фотошоп, но я считаю что она не должна ухудшать качество файла. Это ведь бред!(( Вы видели что оно с картинкой делает? Версия GD 2.0.34.
Я думаю что у других версий все также. Тем более что не могу проверить, так как сижу на хостинге. Разве что использовать для этого денвер.
А какие есть еще библиотеки для работы с изображениями?
спасибо.

Отправлено: 00:46, 27-12-2010 | #3


Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


тынц
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:13, 27-12-2010 | #4


Аватара для freese

Ветеран


Contributor


Сообщения: 6678
Благодарности: 1296

Профиль | Отправить PM | Цитировать


Цитата maasja:
Я кончено понимаю, что GD библиотека, это не фотошоп, но я считаю что она не должна ухудшать качество файла. Это ведь бред!(( »
почему бред? если библиотека проганяя ее через себя уменьшает ее глубину цвета передачи с большего на меньший (24 бит -> 16/8 бит) то потеря качества неизбежна

Отправлено: 11:09, 28-12-2010 | #5


Пользователь


Сообщения: 124
Благодарности: 3

Профиль | Отправить PM | Цитировать


freese, по моему библиотека GD умеет работать с 24 бит изображениями.. тем более мой png файл, как показал Photoshop, имеет всего 8 бит. Просто GD - не для графики, а для примитива) не качественная библиотека..

Sham, БОЛЬШОЕ СПАСИБО!!!!
Проблема решилась, использованием библиотеки ImageMagick. Это перейдя по Вашей ссылке я начал копать, что это за библиотеки)) Вообщем, библиотеку GD можно использовать только в примитивных случаях, например для контактов, фейсбуков, твитеров и т.д. , а все случаи где нужна уже более менее серьйозная работа с графикой нужно использовать только ImageMagick, ну или GraphicsMagick (это форк от библиотеки ImageMagick), в них качество картинок куда выше.
На хостинге есть только ImageMagick, прошу чтобы установили GraphicsMagick, и PECL расширения Gmagick и Imagick , для того чтобы я мог использовать их функциями PHP, а то пока что работаю с помощью exec , system и т.д., что не очень удобно, но зато можно использовать все возможности модулей.
Пишут что GraphicsMagick работает быстрее, но вопрос, заметна ли разница, если не пакетно обрабатывать фотки, а только 5-10 штук при загрузке страницы? И правда ли что PECL расширения Gmagick и Imagick, аж так сильно грузят проц, в сравнении с exec() , system() ... ?

Вообщем сравните:
Оригинал ,
GD-lib код image.php:
Код: Выделить весь код
<?
header ("Content-type: image/png"); //Передаем браузеру mime-тип выводимых данных, зтп изображение.
$img=imagecreatefrompng('dimm.png'); // Создаем изображение из png файла.
imagesavealpha($img,true); // Сохраняем прозрачность.
imagepng($img); // Выводим рисунок в браузер.
?>
,
ImageMagick код image2.php:

Код: Выделить весь код
<?
exec  ("convert dimm.png dimm2.png");
header ("Content-type: image/png");
readfile("dimm2.png");
?>
. Разницу заметно))
Всем спасибо. Жду ответы на вопросы...

Последний раз редактировалось maasja, 04-01-2011 в 22:02.


Отправлено: 03:42, 03-01-2011 | #6


Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


Цитата maasja:
заметна ли разница, если не пакетно обрабатывать фотки, а только 5-10 штук при загрузке страницы »
5-10 - не пакетно уже? Зависит от размера картинок, качества обработки и т.д. Если предполагается серьезная нагрузка, то лучше асинхронно.
Цитата maasja:
аж так сильно грузят проц »
имхо вопрос практический. Что меньше грузит, то и выбираем. Тут мб слишком много привходящих причин (от кривых драйверов до неправильных системных настроек).

Отправлено: 05:14, 03-01-2011 | #7



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Потеря качества png файла после imagecreatefrompng() и imagepng() php.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
потеря качества в Pinnacle Studio 14 gjai Видео и аудио: обработка и кодирование 5 02-08-2010 16:33
[решено] Как вырезать кусок звуковой дорожки из mkv-файла без потери качества? ALEXEY_DFD Видео и аудио: обработка и кодирование 4 22-10-2008 09:33
HDD - потеря файла при синхронизации OLDER Microsoft Windows 2000/XP 0 22-12-2007 09:37
Потеря раздела после дефрагментации. vze Microsoft Windows 2000/XP 8 16-11-2005 16:47
Закачка файла по PHP IksSafonsky Вебмастеру 4 04-12-2003 03:30




 
Переход