方法一
function resize_img(path='./'){
path.uniqid().'.jpg';
url;
list(height) = getimagesize(
percent = (110/
newwidth =
percent;
height *
src_im = imagecreatefromjpeg(
dst_im = imagecreatetruecolor(
newheight);
imagecopyresized(src_im, 0, 0, 0, 0,
newheight,
height);
imagejpeg(imgname); //输出压缩后的图片
imagedestroy(src_im);
return $imgname;
}
function test(path='./'){
h=110; // original size
url;
path.uniqid().'.png';
original_path));
w,
newpic,false);
newpic, 0, 0, 0, 127);
w/2;
for(x<
x++)
for(y<
y++){
src,
y);
x -
_y =
h/2;
if(((_x) + (
_y)) < (
r)){
imagesetpixel(x,
c);
}else{
imagesetpixel(x,
transparent);
}
}
imagesavealpha(newpic,
newpic);
imagedestroy(url);
return $dest_path;
}
方法二
circleAvatar = DIR . DIRECTORY_SEPARATOR . 'avatar.png';
$r = 50;
function getCircleAvatar(circleAvatar,
size = 2 *
circle = new Imagick();
size,
circle->setimageformat('png');
$circle->setimagematte(true);
/**
* @des 在矩形上画一个白色圆
*/
$draw = new ImagickDraw();
$draw->setfillcolor('#fff');
$draw->circle($r, $r, $r, $size);
$circle->drawimage($draw);
/**
* @des 裁剪头像成圆形
*/
$imagick = new Imagick();
$imagick->readImage($avatar);
$imagick->setImageFormat('png');
$imagick->setimagematte(true);
$imagick->cropimage($size, $size, 30, 0); // 修改裁剪属性
$imagick->compositeimage($circle, Imagick::COMPOSITE_COPYOPACITY , 0, 0);
$imagick->writeImage($circleAvatar);
$imagick->destroy();
}
getCircleAvatar(circleAvatar, $r);
网友评论