PHP говорит, что PHP сделал PNG является недействительным - PullRequest
0 голосов
/ 12 ноября 2010

Итак, у меня есть функция, которая превращает JPEG в изображение PNG, изменяет его размер, а затем сохраняет его. Потом чуть позже я возвращаюсь к нему и использую изображение в функции поворота. Я продолжаю получать ошибки, хотя. Он говорит, что uploads / image.png не является действительным файлом PNG. Странная вещь заключается в том, что это происходит только в случае php-файлов png. Если я удаляю image.png и скачиваю png из интернета, имя image.png работает нормально, пока я не запускаю его через первый скрипт изменения размера.

function load($filename) {
$image_info = getimagesize($filename);
$this->image_type = $image_info[2];
if( $this->image_type == IMAGETYPE_JPEG ) {
    $imagecreated = imagecreatefromjpeg($filename);
    $this->image = $imagecreated;
    $extention = pathinfo($filename, PATHINFO_EXTENSION);
    $basename = basename($filename, ".".$extention);
    $newname = "uploads/".$basename;
    imagepng($imagecreated, $newname.".png", 0);
// ....???

function resize($width,$height) {
    $new_image = imagecreatetruecolor($width, $height);
    imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height,
        $this->getWidth(), $this->getHeight());
    $this->image = $new_image;
}

Затем я сохраняю файл просто

imagepng(etc etc);

Я захожу в папку загрузки и выглядит хорошо. его размер и все. Я также заметил, что Photoshop тоже не откроет отредактированный png.

Также здесь находится строка кода, которая выдает ошибку ..

$image = imagecreatefrompng('uploads/image.png');

1 Ответ

0 голосов
/ 12 ноября 2010

Возможное исправление - добавить NULL для параметра фильтров (последний параметр в imagepng)

т.

imagepng($image,$file_location,0,NULL);

Я не могу сказать, что это необходимо, но я читал похожий случай, когда кто-то заметил, что он должен был это сделать, может зависеть от версии libpng или gd lib.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...