Прозрачность в формате PNG распознается в некоторых приложениях, но не в других
-
05-07-2019 - |
Вопрос
У меня есть изображение в формате png, которое вы можете увидеть здесь:
http://img10.imageshack.us/img10/9145/archer5.png
Фон спрайта прозрачный, я вижу это во всех своих браузерах и в infranview (который я использовал для его создания), а также gimp и Windows Explorer.
Однако в Photoshop, Paint и, самое главное, в PHP GD есть сплошной фон.Посмотрите на изображение с помощью одного из этих приложений, чтобы понять, о чем я говорю.
Эскизы, созданные на моем сервере, представляют собой сплошной фон, что не очень хорошо.
Что я могу сделать, чтобы прозрачность была признана всеми приложениями?
Спасибо.
Примечание:У меня также есть 2000 таких изображений, которые должны пройти ту же операцию.Любое пакетное предложение также было бы отличным.
Редактировать:Извините, ребята, я приношу извинения за свою неумелость!НЕПРАВИЛЬНЫЙ ФАЙЛ!Я обновил ссылку правильным файлом, извините!
Решение
Для меня это тоже прозрачно.
MS Paint не поддерживает прозрачность
Как вы упомянули PHP GD, проверьте эти ссылки
Сохранение прозрачности изображения в формате PNG
Измените размер и создайте прозрачный PNG с помощью PHP
imagecolortransparent Руководство по PHP
Другие советы
Для меня у него прозрачный фон в Photoshop.Я предполагаю, что если это непрозрачно в каком-то приложении, это проблема с приложением (не поддерживающим прозрачность), чем с файлом.
Я думаю, ваша проблема заключается в самих приложениях.Когда вы говорите PHP GD, я думаю, что на самом деле вы имеете в виду "Internet Explorer" (поскольку PHP не является средством просмотра).Internet Explorer (по крайней мере, до IE7) не поддерживает прозрачный PNG (он закрывает серое изображение), если вы не сделаете какую-нибудь причудливую фигню с альфа-фильтром.
Это ваше (обновленное) изображение в safari (которое корректно поддерживает формат PNG):
(источник: arc.net.au)
GD требует одну из различных опций (либо непосредственно, либо в типе изображения при создании нового изображения) для вывода прозрачных пикселей.
Возможно, вы могли бы попробовать сохранить их как 24-битные PNG-файлы вместо 32-битных.Возможно, PHP GD имел бы лучшую поддержку для этого.