Создание PNG в PHP (отличается ли оно от gif и jpg?) - PullRequest
0 голосов
/ 07 октября 2008

У меня есть форма загрузки изображений, которая должна принимать типы изображений (PNG, JPEG, GIF), изменять ее размер и затем сохранять в путь.

По какой-то причине я не могу заставить работать типы файлов PNG, он отлично работает с JPEG / GIF, и файл копируется, поэтому похоже, что это связано с тем, как я создаю PNG.

Требуется ли для создания PNG в PHP разные параметры или опции? Пример кода из строк, которые создают изображение:

$src = imagecreatefrompng($uploadedfile);
imagecreatetruecolor($newWidth,$newHeight)
imagecopyresampled($tmp,$src,0,0,0,0,$newWidth,$newHeight,$width,$height);
imagepng($tmp,$destinationPath."/".$destinationFile,100);

Те же команды работают для JPG и GIF.

Ответы [ 4 ]

2 голосов
/ 07 октября 2008

Вам нужно посмотреть, как построен ваш PHP .. Например:

GD Support  enabled
GD Version  bundled (2.0.28 compatible) 
PNG Support     enabled 

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

1 голос
/ 07 октября 2008

Я понял проблему, просто проблема в том, что я не читаю API: P.

в отличие от imagejpg() или imagegif(), imagepng() принимает целое число 0-9 для сжатия. поэтому я передавал 100 в качестве параметра, думая, что качество будет выше, но вместо этого, я думаю, я рассматривал его как максимальное сжатие. Прохождение 0 решило проблему.

Может быть, API изменился по сравнению с версиями PHP?

0 голосов
/ 07 октября 2008

проверено, и у меня есть поддержка PNG:

'Поддержка чтения GIF' => логическое значение true 'Поддержка создания GIF' => логическое значение true 'Поддержка JPG' => логическое значение true 'Поддержка PNG' => логическое значение true

спасибо за ответ, хотя ... думал, что это будет

0 голосов
/ 07 октября 2008

Вы начинаете с PNG-8 изображений? Есть некоторые проблемы с PNG-8 против PNG-24 при работе с PHP. Убедитесь, что поддержка PNG скомпилирована, а затем посмотрите на решение этой проблемы лиц PNG-8 .

...