讨论数量:
圆形头像代码参考
<?php
/**
* 圆形头像.
*
* @see https://github.com/Intervention/image/issues/223
*
* @param int $width
* @param int $height
*/
protected function getCircleImg(int $width, int $height)
{
$circle = Image::canvas($width * 2, $height * 2, '#000');
$circle = $circle->circle($width * 2 - 1, $width, $width, function ($draw) {
$draw->background('#fff');
});
return $circle = $circle->resize($width, $height);
}
?>
圆形头像
$avatar_img = Img::make($avatar)->resize(185,185);
$r = $avatar_img->width() / 2;
$temp_image = Img::canvas(185, 185);
for ($x = 0; $x < $avatar_img->width(); $x++) {
for ($y = 0; $y < $avatar_img->height(); $y++) {
if (((($x - $r) * ($x - $r) + ($y - $r) * ($y - $r)) < ($r * $r))) {
$c = $avatar_img->pickColor($x, $y, 'array');
$temp_image->pixel($c, $x, $y);
}
}
}
// 最终的 $temp_image 就是圆形头像
文字居中:将文字转成图片
$font = new Font($me->name);
$font->file(storage_path("share.TTF"));
$font->size(48);
$font->color('ffffff');
$font->align('left');
$font->valign('top');
// 获取文字边界大小
$size = $font->getBoxSize();
// 生成文字为图片
$fontImage = Img::canvas($size['width'], $size['height']);
$font->applyToImage($fontImage);
// 最终的$fontImage
推荐文章: