php 图片扣背景透明,php 处理透明背景的图片时的问题
PHP圖象處理之透明背景的gif和png圖片的一些問題
1,直接讀取有透明背景的PNG格式文件,然后直接輸出,背景變成了黑色,gif則沒有這種情況。
解決方法:使用
imagesavealpha ($image,
true),此函數是針對png格式的.
$im=imagecreatefrompng("demo_1.png");
imagesavealpha($im,
true);//設置標記以在保存 PNG 圖像時保存完整的 alpha
通道信息。
header(‘Content-type:
image/png‘);
imagepng($im);
imagedestroy($im);
?>
注意一點:不是所有的瀏覽器都支持
alpha 通道,如果在你的瀏覽器上碰到問題,試著用兼容 alpha 通道的瀏覽器(例如最新版的
Mozilla)重新加載腳本。
經測試,在IE中顯示效果不理想(但圖片仍然是透明的,保存下來看下就知道),背景變成了灰色.
2,在處理(比如縮小,剪切)有透明背景的gif和png圖片然后輸出時,圖片透明部分變成了黑色。
示例代碼如下:
$size
= 300;
$image=imagecreatetruecolor($size,
$size);//創建圖片
$back =imagecolorallocatealpha($image, 255, 255,
255,127);//加透明顏色,其實好象沒什么效果。-_-!
//讀取圖片
$im=imagecreatefrompng("demo_1.png");
imagecopyresampled($image,$im,10,20,0,0,128,128,128,128);//合拼圖片
header(‘Content-type:
image/png‘);
imagepng($image);
imagedestroy($image);
?>
效果是圖片背景變成了黑色。
解決辦法:使用imagecreate()而不是用imagecreatetruecolor()創建圖片。
因為imagecreatetruecolor()返回一個圖像標識符,代表了一幅大小為
x_size 和 y_size 的黑色圖像,
看下幫助手冊就知道了。
但這種方法仍然有bug,用于png時,png有部分顏色失去,變成了透明。
解決辦法:未知,有知道的告訴我一聲,在下先謝謝了。
3.php生產透明背景圖片
$wite =
ImageColorAllocate($ni,255,255,255);//填充的背景色你可以重新指定,我用的是白色
imagefilledrectangle($ni,
0, 0, $dstW, $dstH, $wite);
ImageColorTransparent($ni, $wite);
不過現在的方法還不是太理想。繼續整理中~~~~
原文:http://www.cnblogs.com/wayne173/p/3741869.html
總結
以上是生活随笔為你收集整理的php 图片扣背景透明,php 处理透明背景的图片时的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 泊松分布函数表
- 下一篇: php中怎么设置透明背景图片,css怎样