日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

用php画一个蓝底红色的圆_php把图片处理成圆形透明的头像

發布時間:2025/4/5 php 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用php画一个蓝底红色的圆_php把图片处理成圆形透明的头像 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果只是想給圖片加一個圓角可以參考下面文章

用到的php gd庫函數有

imagecolorat

imagesetpixel

首先是把圖片處理成圓形的:

原圖如下:

處理過之后效果:

注意圓色后面的白色為透明的,這里因為上傳文件而變成啦白啦的/**

*??blog:http://www.zhaokeli.com

*?處理成圓圖片,如果圖片不是正方形就取最小邊的圓半徑,從左邊開始剪切成圓形

*?@param??string?$imgpath?[description]

*?@return?[type]??????????[description]

*/

function?yuan_img($imgpath?=?'./tx.jpg')?{

$ext?????=?pathinfo($imgpath);

$src_img?=?null;

switch?($ext['extension'])?{

case?'jpg':

$src_img?=?imagecreatefromjpeg($imgpath);

break;

case?'png':

$src_img?=?imagecreatefrompng($imgpath);

break;

}

$wh??=?getimagesize($imgpath);

$w???=?$wh[0];

$h???=?$wh[1];

$w???=?min($w,?$h);

$h???=?$w;

$img?=?imagecreatetruecolor($w,?$h);

//這一句一定要有

imagesavealpha($img,?true);

//拾取一個完全透明的顏色,最后一個參數127為全透明

$bg?=?imagecolorallocatealpha($img,?255,?255,?255,?127);

imagefill($img,?0,?0,?$bg);

$r???=?$w?/?2;?//圓半徑

$y_x?=?$r;?//圓心X坐標

$y_y?=?$r;?//圓心Y坐標

for?($x?=?0;?$x?

for?($y?=?0;?$y?

$rgbColor?=?imagecolorat($src_img,?$x,?$y);

if?(((($x?-?$r)?*?($x?-?$r)?+?($y?-?$r)?*?($y?-?$r))?

imagesetpixel($img,?$x,?$y,?$rgbColor);

}

}

}

return?$img;

}

header("content-type:image/png");

$imgg?=?yuan_img();

imagepng($imgg);

imagedestroy($imgg);

原理如圖

用以下公式計算

(x-a)*(x-a)+(y-b)*(y-b)

公式成立說明當前x,y點在圓內

x,y為當前的坐標

a,b為圓的圓心位置

r為半徑

先創建一張透明的圖片,

然后一行一行的掃描原圖如圖像素點在圓內就畫出這個像素不在的就保持透明色就可以

總結

以上是生活随笔為你收集整理的用php画一个蓝底红色的圆_php把图片处理成圆形透明的头像的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。