php正方形图片转成成圆形图片-GD
2024-09-08 18:21:51
/**
* 剪切图片为圆形
* @param $picture 图片数据流 比如file_get_contents(imageurl)返回的东东
* @return 图片数据流
*/
private function circular_image($picture) {
$src_img = imagecreatefromstring($picture);
$w = imagesx($src_img);
$h = imagesy($src_img);
$w = min($w, $h);
$h = $w;
$img = imagecreatetruecolor($w, $h);
//这一句一定要有
imagesavealpha($img, true);
//拾取一个完全透明的颜色,最后一个参数127为全透明
$bg = imagecolorallocatealpha($img, 0, 0, 0, 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);
}
}
}
/**
* 如果想要直接输出图片,应该先设header。header("Content-Type: image/png; charset=utf-8");
* 并且去掉缓存区函数
*/
//获取输出缓存,否则imagepng会把图片输出到浏览器
ob_start();
imagepng ( $img );
imagedestroy($img);
$contents = ob_get_contents();
ob_end_clean();
return $contents;
}
最新文章
- juery学习总结(一)——juery选择器
- 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )
- 高版本jquery尤其是1.10.2的版本设置input radio设置值的最正确的姿势。
- 类似github的框架
- JQuery blockUI
- 【BZOJ】【1406】【AHOI2007】密码箱
- 身份证上的X到底代表什么?
- hdu 5690 2016";百度之星"; - 初赛(Astar Round2A) All X 快速二次幂 || 寻找周期
- 【转】oracle创建表空间
- css考核点整理(一)-浮动的理解和清除浮动的几种方式
- CentOS6.5升级为CentOS7.0
- Statement执行DQL语句(查询操作)
- hibernate之使用Annotation注解搭建项目
- find中的-print0和xargs中-0的区别
- JAVA提高七:类加载器
- 并发编程(三): 使用C++11实现无锁stack(lock-free stack)
- Windows解压安装mysql 5.7.24,并部署多个mysql服务
- How Many Triangles (极角排序 + 尺取法)
- Js_图片轮播
- HDUOJ---Piggy-Bank