2011-05-27 46 views
2

我有我在Macromedia(Adobe)Fireworks中創建的圖像。我將它導出爲PNG32,並具有透明背景。當我正常地將圖像傳給瀏覽器時,這很好:php imagecreatefrompng

<img src="myimage.png" /> 

但是,當我使用php來顯示圖像時,我有別名問題。圖像的邊緣得到像素化。對於那些想要知道圖像是什麼的人來說,它是一張卡通人物臉,邊框大約2像素 - 勾勒出人物的輪廓。

我玩過我的代碼,但同樣的事情發生。

這裏就是我的編碼:

<?php 
$img = 'myimage.png'; 
$img = imagecreatefrompng($img); 
header('Content-type: image/png'); 
imagepng($img); 
imagedestroy($img); 
?> 

沒有實際上傳圖像,我將在必要時做的一個樣,有人不明白爲什麼邊境會得到波濤洶涌?

+0

哪個瀏覽器你在測試?其他瀏覽器中是否也發生過相同的事情? – karim79 2011-05-27 05:16:12

+0

只是檢查:這是示例代碼,是嗎?你實際上會用'$ img'做更多的事情,對嗎?或者你只是想使用PHP原樣輸出文件? – deceze 2011-05-27 05:17:06

+0

我很好奇,如果你沒有對圖像做任何事情,爲什麼不直接鏈接到它,或者如果你必須使用[readfile()](http://php.net/manual/en/function .readfile.php) – Phil 2011-05-27 05:17:30

回答

3

我想試試這個,看看是否有幫助:

<?php 
$img = 'myimage.png'; 
$img = imagecreatefrompng($img); 
// enables alpha channel 
imagealphablending($img, true); // setting alpha blending on 
imagesavealpha($img, true); // save alphablending setting (important) 
+0

這很好。謝謝! – coffeemonitor 2011-05-27 05:38:12

+0

我的快樂朋友。快樂的編碼。 – stefgosselin 2011-05-27 05:41:12