X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Баг PHP или моя недоработка?
mark2013
mark2013
Topic Starter сообщение 7.5.2019, 9:39; Ответить: mark2013
Сообщение #1


Всем привет!
Написал функцию, которая перемасштабирует изображение.Функция здесь: https://pastebin.com/wzuuk7ES
Так вот, с jpg всё отлично работает. А вот когда попробовал на png - ответ такой: "Изображение ........ не может быть показано, так как содержит ошибки".
Стал думать, в чём прикол.В функции после
Цитата
if($mime['mime']=='image/png') {
$src_img = imagecreatefrompng($filename);

}

сделал
Цитата
echo $src_img;exit;

и получил следующее:
Цитата
Warning: imagecreatefrompng(): gd-png error: cannot allocate libpng main struct in ... on line 11

Warning: imagecreatefrompng(): 'image2.png' is not a valid PNG file in ... on line 11

"line 11" это:
Цитата
$src_img = imagecreatefrompng($filename);

Ну и как это понимать? PHP 7.3.5. Может быть багом?


0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DevDeweloper
DevDeweloper
сообщение 7.5.2019, 9:50; Ответить: DevDeweloper
Сообщение #2


Цитата(mark2013 @ 7.5.2019, 9:39) *
Всем привет!
Написал функцию, которая перемасштабирует изображение.Функция здесь: https://pastebin.com/wzuuk7ES
Так вот, с jpg всё отлично работает. А вот когда попробовал на png - ответ такой: "Изображение ........ не может быть показано, так как содержит ошибки".
Стал думать, в чём прикол.В функции после
Цитатаif($mime['mime']=='image/png') {
$src_img = imagecreatefrompng($filename);

}
сделал
Цитатаecho $src_img;exit;
и получил следующее:ЦитатаWarning: imagecreatefrompng(): gd-png error: cannot allocate libpng main struct in ... on line 11

Warning: imagecreatefrompng(): 'image2.png' is not a valid PNG file in ... on line 11
"line 11" это:Цитата$src_img = imagecreatefrompng($filename);
Ну и как это понимать? PHP 7.3.5. Может быть багом?

99% не стоит либа libpng на сервере или криво указан путь до нее


--------------------
Мои услуги - клик
Интересное предложение по моб. приложению для интернет магазинов - клик
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mark2013
mark2013
Topic Starter сообщение 7.5.2019, 9:54; Ответить: mark2013
Сообщение #3


DevDeweloper,
Цитата
libPNG Version 1.6.17


Это из phpinfo()
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DevDeweloper
DevDeweloper
сообщение 7.5.2019, 10:11; Ответить: DevDeweloper
Сообщение #4


Цитата(mark2013 @ 7.5.2019, 9:54) *
DevDeweloper,
ЦитатаlibPNG Version 1.6.17

Это из phpinfo()

Тогда, не валидный файл. Проверяйте не на тип а @imagecreatefrompng если false то он кривой или не тот формат
А вообще при сохранении файла пришедшего на сервер нужно так проверять.

Сообщение отредактировал DevDeweloper - 7.5.2019, 10:14


--------------------
Мои услуги - клик
Интересное предложение по моб. приложению для интернет магазинов - клик
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mark2013
mark2013
Topic Starter сообщение 7.5.2019, 10:18; Ответить: mark2013
Сообщение #5


DevDeweloper, я штук 5 png скачал с яндекс картинок и все кривые? такое может быть?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Андрей_WPM
Андрей_WPM
сообщение 7.5.2019, 11:04; Ответить: Андрей_WPM
Сообщение #6


mark2013, а что если перед началом масштабирования принудительно поменять png на jpg, замасштабить его и в конце опять с jpg на png? Раз говорите jpg масштабируется без проблем. Думаю, это самый простой способ обойти проблему (хотя, честно говоря быдлокод, но проблему то решит... :D ).


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetalMessiah
MetalMessiah
сообщение 7.5.2019, 14:49; Ответить: MetalMessiah
Сообщение #7


Цитата
я штук 5 png скачал с яндекс картинок и все кривые? такое может быть?

Скинь сюда одну, мы посмотрим. Все может быть, ты качаешь с гугл картинок JPG, на странице написано что формат JPG, а тебе какой-то webm сохраняется, потом думаешь чем эту дрянь прочитать. Или какой-то кривой фреймворк для работы с PDF стоял в одном из банков страны на сохранение квитанций, в браузере PDF открывался, а софтом типа Акробата - неверный формат, файл проврежден и все такое, а прикол в том что перед заголовком в шапке строчка мусора...

Сообщение отредактировал MetalMessiah - 7.5.2019, 14:51
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DevDeweloper
DevDeweloper
сообщение 7.5.2019, 16:04; Ответить: DevDeweloper
Сообщение #8


mark2013, Есть такая штука неиндексируемый png. Открой его в GIMP например и IMAGE->EXPORT->EXTENDED .. И подкинь. Либо самый простой вариант. Взять в фотошопе создать png и сохранить.


--------------------
Мои услуги - клик
Интересное предложение по моб. приложению для интернет магазинов - клик
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mark2013
mark2013
Topic Starter сообщение 7.5.2019, 18:56; Ответить: mark2013
Сообщение #9


DevDeweloper, делал уже так, всё равно ошибку выдаёт.

Открыл GIMP... нарисовал круг, залил его цветом и сохранил сей "шедевр" в PNG. Вот самая простая функция, какая вообще может быть:

Цитата
function resizePng($new_width, $new_height)
{
$file = "/var/www/sites/photogallery/image.png";
$im = imagecreatefrompng($file);
$imnew = imagecreatetruecolor($new_width, $new_height);
imagecopyresized($imnew, $im, 0, 0, 0, 0, $new_width, $new_height, 1920, 1080);
header("Content-type: image/png");
imagepng($imnew);
}


Вызов:
Цитата
resizePng(400, 150);

даёт

Цитата
Изображение ... не может быть показано, так как содержит ошибки


В логах - всё то же:
Цитата
gd-png error: cannot allocate libpng main struct in...


Сообщение отредактировал mark2013 - 7.5.2019, 19:09
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WoWeb
WoWeb
сообщение 7.5.2019, 19:10; Ответить: WoWeb
Сообщение #10


mark2013, А можно полный текст этой ошибки - gd-png error: cannot allocate libpng main struct in ...


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Создать видеоканал лучше в ютуб или телеграм?
20 uahomka 3532 20.4.2024, 20:56
автор: Vmir
Открытая тема (нет новых ответов) Если статья не в индексе Google - она уникальна или нет?
5 uahomka 1440 3.4.2024, 23:56
автор: Liudmila
Открытая тема (нет новых ответов) Где больше пробив на кликандер или попандер или попап трафике?
1 Boymaster 680 20.3.2024, 9:50
автор: Skyworker
Горячая тема (нет новых ответов) Выполню качественную верстку макетов или разработка собственного, быстро и не дорого
от 45$
123 webche 117238 17.3.2024, 7:09
автор: webche
Открытая тема (нет новых ответов) От какого экрана будут меньше уставать глаза OLED или IPS?
3 metvekot 1035 12.3.2024, 16:25
автор: MisterBit


 



RSS Текстовая версия Сейчас: 23.4.2024, 23:29
Дизайн