2013-09-17 3 views
2

Я делаю простую загрузку изображения с помощью imagecreatefrompng.PHP imagecreatefrompng потерять цвет

Фон изображения # E5DDBB. Используя приведенный ниже код, он отображает изображение, но фон теперь # DED6AD.

http://www.letslogic.com/test.php содержит следующее:

<img src="images/skins/yoshi/0.png"> 

<img src="dyn_image.php"> 

dyn_image.php содержит:

<?php 

$im = imagecreatefrompng('images/skins/yoshi/0.png'); 

header("Content-Type: image/png"); 

imagepng($im); 

?> 

Если вы посмотрите на два изображения, которые test.php шоу, изображения разных цветов ...

+0

Какую версию GD и PHP вы используете? –

+0

GD: в комплекте (совместим с 2.0.34) PHP: 5.2.17 –

+0

Возможно ли, что изображение имеет прозрачность? –

ответ

1

Видимо, это проблема с цветовым профилем. Что-то связано с тем, что изображение имеет один цветовой профиль, тогда как gd позволяет сохранять изображение только в одном цветовом профиле, он знает, как сохранить изображения, отличающиеся от введенного изображения, в результате чего цвета выглядят иначе.

Кажется, вам понадобится использовать imagemagick, чтобы не менять цвета. Вы должны прочитать эти:

http://www.zenphoto.org/support/topic.php?id=3582

http://devot-ee.com/add-ons/support/ce-image/viewthread/1085

+0

Да, «GD, игнорирует цветовые профили», как описано в http://www.human-element.com/Blog/ArticleDetailsPage/tabid/91/ArticleID/57/A-Tale-of-Two-Images.aspx –