PHP生成圆心图片-常用作头像圆图等场景
/** * 生成圆形图片 * @param $imgpath 图片地址/支持微信、QQ头像等没有后缀的网络图 * @param $saveName string 保存文件名,默认空。 * @return resource 返回图片资源或保存文件 */ function yuan_img($imgpath,$saveName = '') { $src_img = imagecreatefromstring(file_get_contents($imgpath)); $w = imagesx($src_img);$h = imagesy($src_img); $w = $h = min($w, $h); $img = imagecreatetruecolor($w, $h); //这一句一定要有 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); } } } //返回资源 if(!$saveName) return $img; //输出图片到文件 imagepng ($img,$saveName); //释放空间 imagedestroy($src_img); imagedestroy($img); }