100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > php 将图片裁剪成圆形图片 裁剪图片为圆形

php 将图片裁剪成圆形图片 裁剪图片为圆形

时间:2023-07-31 15:06:41

相关推荐

php 将图片裁剪成圆形图片 裁剪图片为圆形

```

/**

* 处理圆角图片

* @param srting $imgpath 源图片的路径

* @return [type] [description]

*/

public function roundedCorners($imgpath){

list($width,$height,$type) = getimagesize($imgpath);//获取上传图片大小

if ($width != $height) {//如果上传图片不是正方形,取最小宽度作为最终生成图的大小

if ($width > $height) {

$imsize = $height;

} else {

$imsize = $width;

}

}else{

$imsize = $width;

}

$im = imagecreatetruecolor($imsize, $imsize);//这里创建第一个图像

$white = imagecolorallocate($im, 255, 255, 255);// 随便取两个颜色,这里取黑色和白色

$black = imagecolorallocate($im, 0, 0, 0);

imagefill($im, 0, 0, $white);//将图片填充为白色

imagefilledellipse($im, $imsize/2, $imsize/2, $imsize, $imsize, $black);//然后再图片中间画一个黑色的圆

imagecolortransparent($im, $black);//将黑色设为透明的,则现在四个角是白色的,然后中间是透明的

switch ($type) {

case '2':

$img = imagecreatefromjpeg($imgpath);//这里创建的是第二个图像

break;

default:

$img = imagecreatefrompng($imgpath);//这里创建的是第二个图像

break;

}

$final = imagecreatetruecolor($imsize, $imsize);//再创建一个图像,第三个图像

imagecopyresampled($final, $img, 0, 0, ($width-$imsize)/2, ($height-$imsize)/2, $imsize, $imsize, $imsize, $imsize);//先将第二个图像(图片)压在空白的图像上,根据最小宽度,居中裁剪,成为第四个图像

imagecopymerge($final, $im, 0, 0, 0, 0, $imsize, $imsize, 100);//再将第一个图像压在第四个图像上,由于中间是透明的,所以现在图像上中间是图片,四个角都是白色的,第五个图

imagecolortransparent($im, $white);//然后将白色设置为透明的,现在这个图四个角是透明的,然后中间是黑色的

imagecopymerge($im, $final, 0, 0, 0, 0, $imsize, $imsize, 100);//将第五个图压在最后的图像上,就可以得到最后的圆形的图了

imagepng($im, './poster/u2222.png');

//imagepng($im, '图片路径');

//dump($im);//返回图片

return './poster/u2222.png';

}

```

[链接](/p/6eb141eed335)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。