PHP把图片转换成圆形png(头像处理)


关键词

PHP 图片 圆形

摘要

PHP使用GD把图片转换成圆形的,如果是长方形的图图片,则使用较短的一边作为圆形图片的直径。

/* 
 * @fun 图片转换成圆形png,传入源路径和转换后的路径,均用相对于当前程序文件的路径
 * @memo 对于非正方形的图片,以短边作为图片的直径
 * @param string $src 源路径
 * @param string $dst 转换后的路径
 * @return void
 * @call z_image2circle("circleimage.jpg", './circleimage-'.uniqid().'.png');
 */
function z_image2circle($src, $dst){

    //获取原图尺寸,并设置新图片的宽度和高度
    list($w, $h) = getimagesize($src); 
    if( $w > $h ){
        $w = $h;
    }else{
        $h = $w;
    }
    
    $oimgSrc = imagecreatefromstring(file_get_contents($src));
    $oimgDst = imagecreatetruecolor($w, $h);
    imagealphablending($oimgDst,false);
    $transparent = imagecolorallocatealpha($oimgDst, 0, 0, 0, 127);
    $r=$w/2;
    for($x=0;$x<$w;$x++){
        for($y=0;$y<$h;$y++){  
            $c = imagecolorat($oimgSrc,$x,$y);
            $_x = $x - $w/2;
            $_y = $y - $h/2;
            if((($_x*$_x) + ($_y*$_y)) < ($r*$r)){  
                imagesetpixel($oimgDst,$x,$y,$c);
            }else{  
                imagesetpixel($oimgDst,$x,$y,$transparent);
            }
        }
    }
    imagesavealpha($oimgDst, true);
    imagepng($oimgDst, $dst);
    imagedestroy($oimgDst);
    imagedestroy($oimgSrc);
}

 

文章的版权

洪哥写文章很苦逼,如果本文对您略有帮助,点击感兴趣的广告支持洪哥!万分感谢!本文属于“洪哥笔记”原创文章,转载请注明来源地址:PHP把图片转换成圆形png(头像处理):http://www.splaybow.com/post/php-circle-81514.html

关注与收藏

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:115085382!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D


« PHP不缓存直接输出到浏览器端

相关文章:

PHP不缓存直接输出到浏览器端  (2017/12/21 7:14:23)

PHP中is_empty、is_null、isset的区别  (2017/9/21 7:44:11)

PHP生成GUID  (2017/9/6 7:39:17)

Windows下PHPWord 报错 Could not close zip file  (2017/6/9 7:09:22)

ThinkPHP解决搜索中文翻页后条件失效的问题  (2017/8/21 7:20:36)

PHP自定义函数z_ret  (2017/8/11 7:00:30)

二叉树、N叉树寻找上级结点  (2017/7/5 7:07:43)

PHP魔术常量__FILE__  (2017/7/11 7:21:53)

PHP魔术常量__DIR__  (2017/6/25 7:16:02)

PHP删除文件夹下指定时间前创建的文件  (2017/6/21 7:57:02)