/**
* 剪切图片为圆形
* @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;
}

  

最新文章

  1. juery学习总结(一)——juery选择器
  2. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )
  3. 高版本jquery尤其是1.10.2的版本设置input radio设置值的最正确的姿势。
  4. 类似github的框架
  5. JQuery blockUI
  6. 【BZOJ】【1406】【AHOI2007】密码箱
  7. 身份证上的X到底代表什么?
  8. hdu 5690 2016&quot;百度之星&quot; - 初赛(Astar Round2A) All X 快速二次幂 || 寻找周期
  9. 【转】oracle创建表空间
  10. css考核点整理(一)-浮动的理解和清除浮动的几种方式
  11. CentOS6.5升级为CentOS7.0
  12. Statement执行DQL语句(查询操作)
  13. hibernate之使用Annotation注解搭建项目
  14. find中的-print0和xargs中-0的区别
  15. JAVA提高七:类加载器
  16. 并发编程(三): 使用C++11实现无锁stack(lock-free stack)
  17. Windows解压安装mysql 5.7.24,并部署多个mysql服务
  18. How Many Triangles (极角排序 + 尺取法)
  19. Js_图片轮播
  20. HDUOJ---Piggy-Bank

热门文章

  1. Jmeter 模拟http发送zip文件
  2. 【环境搭建】RocketMQ集群搭建
  3. ARL灯塔系统搭建
  4. [OpenCV实战]42 数码单反相机的技术细节
  5. 2_cookie、session、token、sign
  6. C#调用接口的简单流程
  7. C语言指针常见问题
  8. ArcGIS工具 - 按线分割面
  9. TiDB 底层存储结构 LSM 树原理介绍
  10. [WPF]限制程序单例运行