php 制作圆形图片

function createRoundImg($imgpath) {
    $ext = pathinfo($imgpath);
    $src_img = null;
    switch ($ext['extension']) {
        case 'jpg':
            $src_img = imagecreatefromjpeg($imgpath);
            break;
        case 'png':
            $src_img = imagecreatefrompng($imgpath);
            break;
    }
    $wh = getimagesize($imgpath);
    $w  = $wh[0];
    $h  = $wh[1];
    $w = $h = min($w, $h);

    $image = imagecreatetruecolor($w, $h);
    $bg = imagecolorallocatealpha($image, 255, 255, 255, 127);
    imagesavealpha($image, true);
    imagefill($image, 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($image, $x, $y, $rgbColor);
            }
        }
    }

    header("content-type:image/png");
    imagepng($image);
    imagedestroy($image);
}

 

posted @ 2018-02-02 14:38  cnsr  阅读(1319)  评论(0编辑  收藏  举报