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:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« PHP使用curl执行后台异步任务 PHP中date函数的使用 »