亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php 處理png圖片白色背景色改為透明色的實例代碼

2024-05-05 00:05:53
字體:
來源:轉載
供稿:網友

先看下面一段代碼,php 處理png圖片白色背景色改為透明色

function pngMerge($o_pic,$out_pic){ $begin_r = 255; $begin_g = 250; $begin_b = 250; list($src_w, $src_h) = getimagesize($o_pic);// 獲取原圖像信息 寬高 $src_im = imagecreatefrompng($o_pic); //讀取png圖片 print_r($src_im); imagesavealpha($src_im,true);//這里很重要 意思是不要丟了$src_im圖像的透明色 $src_white = imagecolorallocatealpha($src_im, 255, 255, 255,127); // 創建一副白色透明的畫布 for ($x = 0; $x < $src_w; $x++) {  for ($y = 0; $y < $src_h; $y++) {    $rgb = imagecolorat($src_im, $x, $y);    $r = ($rgb >> 16) & 0xFF;    $g = ($rgb >> 8) & 0xFF;    $b = $rgb & 0xFF;    if($r==255 && $g==255 && $b == 255){    imagefill($src_im,$x, $y, $src_white); //填充某個點的顏色    imagecolortransparent($src_im, $src_white); //將原圖顏色替換為透明色    }    if (!($r <= $begin_r && $g <= $begin_g && $b <= $begin_b)) {     imagefill($src_im, $x, $y, $src_white);//替換成白色     imagecolortransparent($src_im, $src_white); //將原圖顏色替換為透明色    }  } } $target_im = imagecreatetruecolor($src_w, $src_h);//新圖 imagealphablending($target_im,false);//這里很重要,意思是不合并顏色,直接用$target_im圖像顏色替換,包括透明色; imagesavealpha($target_im,true);//這里很重要,意思是不要丟了$target_im圖像的透明色; $tag_white = imagecolorallocatealpha($target_im, 255, 255, 255,127);//把生成新圖的白色改為透明色 存為tag_white imagefill($target_im, 0, 0, $tag_white);//在目標新圖填充空白色 imagecolortransparent($target_im, $tag_white);//替換成透明色 imagecopymerge($target_im, $src_im, 0, 0, 0, 0, $src_w, $src_h, 100);//合并原圖和新生成的透明圖 imagepng($target_im,$out_pic); return $out_pic;}$o_pic = '1.png';$name = pngMerge($o_pic,'aaaa.png');print_r($name);

補充:用PHP的GD庫把圖片的背景替換成透明背景

之前寫個功能用PHP把圖片的背景弄成透明,之留下文字(黑色的),我也在百度上找,也試過別人的代碼。大多數代碼的思路都是這樣:

生成新的畫布,讀取源圖片每個坐標的顏色,不符合要求的用imagecolortransparent()函數將該顏色替換成透明的。

$o_pic = '1.jpg';//要處理的色階起始值$begin_r = 215;$begin_g = 215;$begin_b = 215;list($src_w,$src_h,$src_type) = getimagesize($o_pic);// 獲取原圖像信息$file_ext = get_ext($o_pic);//獲取擴展名$target_im = imagecreatetruecolor($src_w,$src_h);//新圖if($file_ext == 'jpg') //轉換JPG 開始{  $src_im = ImageCreateFromJPEG($o_pic);  imagecopymerge($target_im,$src_im,0,0,0,0,$src_w,$src_h,100);  for($x = 0; $x < $src_w; $x++)  {    for($y = 0; $y < $src_h; $y++)    {      $rgb = imagecolorat($src_im, $x, $y);      $r = ($rgb >> 16) & 0xFF;      $g = ($rgb >> 8) & 0xFF;      $b = $rgb & 0xFF;      if($r > $begin_r && $g > $begin_g && $b > $begin_b ){          imagecolortransparent($target_im, imagecolorallocate($target_im,$r, $g, $b));              }    }  }}

但是用了這個思路,圖片的背景一直都不能便透明,改了好多次。
后來發現只有最后一次imagecolortransparent()有效果,前面都都被覆蓋了。

把思路改了下,把不要的顏色先統一轉換成白色,最后再將白色替換成透明

$begin_r = 98;$begin_g = 98;$begin_b = 98;list($src_w, $src_h) = getimagesize($o_pic);// 獲取原圖像信息$src_im = imagecreatefromjpeg($o_pic);//imagecopymerge($target_im, $src_im, 0, 0, 0, 0, $src_w, $src_h, 100);//imagecopyresampled($target_im, $src_im, 0, 0, 0, 0, $src_w, $src_h, $src_w, $src_h);$i = 0;$src_white = imagecolorallocate($src_im, 255, 255, 255);for ($x = 0; $x < $src_w; $x++) {  for ($y = 0; $y < $src_h; $y++) {   $rgb = imagecolorat($src_im, $x, $y);   $r = ($rgb >> 16) & 0xFF;   $g = ($rgb >> 8) & 0xFF;   $b = $rgb & 0xFF;   if($r==255 && $g==255 && $b == 255){     $i ++;     continue;   }   if (!($r <= $begin_r && $g <= $begin_g && $b <= $begin_b)) {     imagefill($src_im, $x, $y, $src_white);//替換成白色   }  }}$target_im = imagecreatetruecolor($src_w, $src_h);//新圖$tag_white = imagecolorallocate($target_im, 255, 255, 255);imagefill($target_im, 0, 0, $tag_white);imagecolortransparent($target_im, $tag_white);imagecopymerge($target_im, $src_im, 0, 0, 0, 0, $src_w, $src_h, 100);

總結

以上所述是小編給大家介紹的php 處理png圖片白色背景色改為透明色的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日日摸夜夜添一区| 国产精品揄拍一区二区| 久久视频在线直播| 亚洲品质视频自拍网| 国内偷自视频区视频综合| 亚洲精品国产精品自产a区红杏吧| 国产精品第七十二页| 亚洲国产精彩中文乱码av在线播放| 欧美日韩在线看| 青青草原一区二区| 精品成人国产在线观看男人呻吟| 欧美床上激情在线观看| 亚洲人成电影网站| 精品久久久久久久久久ntr影视| 国产噜噜噜噜久久久久久久久| 欧美中文在线视频| 91av网站在线播放| 青青在线视频一区二区三区| 精品呦交小u女在线| 欧美国产精品va在线观看| 国产精品久久久久久亚洲影视| 欧美高清在线播放| 成人午夜激情免费视频| 久青草国产97香蕉在线视频| 久久综合88中文色鬼| 成人黄色免费网站在线观看| 国产精品99久久久久久白浆小说| 欧美激情小视频| 久久久av电影| 正在播放欧美视频| 久久精品国产精品亚洲| 欧美主播福利视频| 欧美成人午夜免费视在线看片| 日本免费在线精品| 久久九九精品99国产精品| 不卡av电影院| 亚洲视频在线播放| 日韩精品久久久久| 欧美激情乱人伦| 国产精品69精品一区二区三区| 日韩大片在线观看视频| 不卡av日日日| 欧美日韩福利电影| 国产精品久久久久久久久久久久久| 亚洲色图35p| 黄色一区二区三区| 国产在线不卡精品| 精品美女永久免费视频| 丁香五六月婷婷久久激情| 亚洲成色777777在线观看影院| 欧美老肥婆性猛交视频| 亚洲欧洲在线看| 国产精品小说在线| 92看片淫黄大片欧美看国产片| 国产免费久久av| 日韩高清电影免费观看完整| 久久亚洲精品中文字幕冲田杏梨| 日韩一区在线视频| 国产亚洲美女久久| 欧美黑人xxx| 国产精品国产三级国产aⅴ浪潮| 国产美女91呻吟求| 亚洲视频在线观看免费| 欧美肥老太性生活视频| 成人有码在线视频| 国产高清在线不卡| 亚洲第一网站免费视频| 亚洲第一区在线观看| 日本精品中文字幕| 日本高清不卡在线| 色综合色综合久久综合频道88| 综合国产在线观看| 亚洲国产精品嫩草影院久久| 中日韩美女免费视频网址在线观看| 国产精品成人久久久久| 亚洲成人在线网| 国产精品电影观看| 亚洲天堂男人的天堂| 色综合久久久久久中文网| 亚洲福利在线看| 久久综合久久八八| 欧美丝袜美女中出在线| 久久好看免费视频| 国产成人精品久久二区二区| 亚洲精品久久久久久久久| 日本午夜在线亚洲.国产| 国产成人精品免费视频| 欧美巨乳美女视频| 欧美成人免费网| 欧美又大又硬又粗bbbbb| 亚洲欧美精品suv| 亚洲欧美国产高清va在线播| 在线观看亚洲区| 中文字幕不卡在线视频极品| 亚洲午夜久久久久久久| 亚洲电影在线观看| 91久久久久久久久久| 中文字幕在线看视频国产欧美| 久久精品视频99| 色综合久久中文字幕综合网小说| 亚洲人成网站在线播| 日韩av片永久免费网站| 亚洲毛片在线看| 国产日韩欧美在线观看| 亚洲成人免费网站| 久久精品国产亚洲一区二区| 在线免费看av不卡| 国产精品第10页| 亚洲欧美资源在线| 欧美精品情趣视频| 欧美午夜精品在线| 久久久久久91| 国产97在线|日韩| 欧美www在线| 日韩欧美aⅴ综合网站发布| 久久久久久国产免费| 久久久久久久久国产精品| 国产精品999999| 亚洲片国产一区一级在线观看| 日韩在线观看网站| 日韩有码在线播放| 狠狠色噜噜狠狠狠狠97| 国产精品久久久久久久久免费看| 国产精品久久久久久久久借妻| 91精品中国老女人| 日韩的一区二区| 日韩视频免费大全中文字幕| 亚洲第一免费网站| 91精品国产精品| 欧美日韩国产中字| 欧美激情亚洲自拍| 亚洲人成电影网站色…| 日韩av中文字幕在线免费观看| 欧美激情欧美狂野欧美精品| 美女福利视频一区| 欧美老女人性视频| 欧美精品中文字幕一区| 欧美精品激情blacked18| 亚洲精品免费网站| 久久综合88中文色鬼| 国内成人精品视频| 国内精品美女av在线播放| 日本电影亚洲天堂| 午夜剧场成人观在线视频免费观看| 国产精自产拍久久久久久| 91精品久久久久久久| 欧美激情精品久久久久久| 日韩经典中文字幕在线观看| 亚洲精品久久久久久下一站| 国语对白做受69| 亚洲第一色中文字幕| 欧美精品在线视频观看| 91精品视频免费看| 国产精品视频一区二区高潮| 亚洲一区二区三区xxx视频| 欧美成人免费播放| 日本成熟性欧美| 日本久久精品视频| 亚洲国产精品人人爽夜夜爽| 91精品久久久久久久久青青| 亚洲精品永久免费精品| 成人久久久久久| 欧美性受xxxx黑人猛交| 91成人免费观看网站|