PHP实现将图片或头像转换为圆形(类似微信头像)
- 5998
- PHP
- 0
- super_dodo
- 2019/07/03
在生成带头像的二维码的时候,用户的头像是正方形的,这个时候希望把头像生成圆形的,所以需要对头像进行相应的处理,把图片转换为圆形。下面是一个网上的案例,仅供参考。
/**
* 将图片转为圆形
* @param [string] $img 原始图片地址
* @param [string] $save_img 生成后的圆形图片存储路径
*/
function circular_img($img,$save_img){
$ext=pathinfo($img);
$src_img = null;
switch ($ext['extension']) {
case 'jpg':
$src_img=imagecreatefromjpeg($img);
break;
case 'png':
$src_img=imagecreatefrompng($img);
break;
}
$wh= getimagesize($img);
$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 < $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);
}
}
}
imagejpeg ($img,$save_img,90);
imagedestroy($img);
return true;
}
$oldImg = './img/old.png'; //原来的图片
$newImg = './img/new.png'; //生成的图片
$res = circular_img($oldImg, $newImg);
var_dump($res);
[/php]
#参考网址:
#https://www.cnblogs.com/xuweiqiang/p/9956498.html
人的运气是可以调整的~比如通过感恩和微笑~记得每天心怀感恩和保持微笑
- PHP中public,private,protected三种类属性的区别
- [转]每天一个linux命令(3):pwd命令
- 解决MySQL启动出现The server quit without updating PID file.
- HTML中CSS实现图片左上角展示热销的小图片
- [转]使用PHP的socket写了websocket个聊天室原理
- jQuery处理select/radio/checkbox/textarea的Text/Value…
- Yii2的bacthInsert以及MySQL中的INSERT IGNORE INTO 批量
- 中学常见的课外名句背诵
- [转]每天一个linux命令(44):netstat命令
- Yii2中使用PHPExcel导入批量用户(读取excel数据)
相关阅读
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
热门文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
最新文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例