青岛建设网站企业,人才招聘网站开发+源代码,网址大全你懂的,智慧团建系统平台登录入口业务需要把创建海报上的用户头像由方形转为圆形#xff0c;前端的样式设置不能用。 故采用GD的函数来对方图进行裁剪处理为圆图。 目录
裁剪函数
本地图片
远程图片
效果
参考文章
总结 裁剪函数
从网上找的一个裁剪图片的函数。
代码如下#xff1a;
/*
* 将图片切… 业务需要把创建海报上的用户头像由方形转为圆形前端的样式设置不能用。 故采用GD的函数来对方图进行裁剪处理为圆图。 目录
裁剪函数
本地图片
远程图片
效果
参考文章
总结 裁剪函数
从网上找的一个裁剪图片的函数。
代码如下
/*
* 将图片切成圆角
*/
function drawCircle($imgPath){$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);// 设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息imagesavealpha($img, true);// 拾取一个完全透明的颜色,最后一个参数127为全透明$bg imagecolorallocatealpha($img, 255, 255, 255, 127);imagefill($img, 0, 0, $bg);$r $w / 2; //圆半径for ($x 0; $x $w; $x) {for ($y 0; $y $h; $y) {$rgbColor imagecolorat($src_img, $x, $y);if (((($x - $r) * ($x - $r) ($y - $r) * ($y - $r)) ($r * $r))) {imagesetpixel($img, $x, $y, $rgbColor);}}}// 资源内容 resource(5) of type (gd)return $img;
} 本地图片
使用本地图片作为裁剪的源文件需要图片文件的绝对路径作为参数。
代码如下
// 绝对路径
$info drawCircle(dirname(__FILE__)./img/2.jpg);
//var_dump($info); // resource(5) of type (gd)// 直接图片显示
header(Content-Type: image/png);
imagepng($info); 远程图片
如果使用的是远程的网络图片比如https://xxx.img文件时。
直接使用会无法读取到图片内容。
就需要变动一下处理先下载图片到本地然后图片绝对路径。
代码如下
// 如果是网络图片 需要下载本地后 换成绝对路径
$fileName ./1.jpg;
file_put_contents($fileName, file_get_contents(https://t9.baidu.com/it/u2906392343,593562570fm217app126sizef242,150n0fJPEGfmtauto?s1338748239B30A887D51FE0E030040E5sec1732986000t4418c79f8c027c772f1e5c55284d524e));
$info drawCircle(dirname(__FILE__) . ltrim($fileName, .));
//var_dump($info); // resource(5) of type (gd)// 直接图片显示
header(Content-Type: image/png);
imagepng($info); 效果 参考文章
php 利用GD库将正方形图片变成圆形_php gd把图片变成圆形-CSDN博客 总结
使用PHP GD库函数对方图进行裁剪处理为圆图