php base64图片 如何做成圆角图片?
php base64图片 如何做成圆角图片?
php base64图片 如何做成圆角图片?
php base64图片 如何做成圆角图片?
要将 PHP 中的 base64 图片转换为圆角图片,可以使用 imagecreatefromstring() 和 imagecopyresampled() 函数来处理。以下是一个实现例子:
// 要处理的 base64 图片
$base64_img = "data:image/jpeg;base64,/9j/4AAQSkZJRgA...";
// 从 base64 字符串中创建图像资源
$img = imagecreatefromstring(base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $base64_img)));
// 获取图片宽度和高度
$width = imagesx($img);
$height = imagesy($img);
// 创建一个与原图等大的空白画布
$canvas = imagecreatetruecolor($width, $height);
// 定义圆角的大小
$radius = 50;
// 在画布上绘制圆角矩形
imagefilledrectangle($canvas, 0, 0, $width, $height, 0xFFFFFF);
imagefilledellipse($canvas, $radius, $radius, $radius * 2, $radius * 2, 0x000000);
imagefilledellipse($canvas, $width - $radius, $radius, $radius * 2, $radius * 2, 0x000000);
imagefilledellipse($canvas, $radius, $height - $radius, $radius * 2, $radius * 2, 0x000000);
imagefilledellipse($canvas, $width - $radius, $height - $radius, $radius * 2, $radius * 2, 0x000000);
imagefilledrectangle($canvas, 0, $radius, $width, $height - $radius, 0x000000);
imagefilledrectangle($canvas, $radius, 0, $width - $radius, $height, 0x000000);
// 将原图绘制到圆角矩形中
imagecopyresampled($canvas, $img, $radius, $radius, 0, 0, $width - $radius * 2, $height - $radius * 2, $width, $height);
// 输出处理后的图片
header('Content-type: image/png');
imagepng($canvas);
上述代码中,我们首先使用 imagecreatefromstring() 函数从 base64 字符串中创建图像资源。然后,创建一个与原图等大的空白画布,并使用 imagefilledellipse() 和 imagefilledrectangle() 函数在画布上绘制一个圆角矩形。最后,使用 imagecopyresampled() 函数将原图绘制到圆角矩形中,并输出处理后的图片。需要注意的是,这里我们输出的是 PNG 格式的图片,你可以根据需要调整输出格式。