一、PHP图片圆角处理概述
- 绘制圆角矩形:先绘制一个直角矩形,然后在矩形四个角上绘制圆弧。
- 图片覆盖法:将一个带有圆角的图片覆盖在原始图片上。
下面我们将详细讲解这两种方法。
二、绘制圆角矩形
1. 创建图像和颜色
首先,我们需要创建一个新的图像并设置背景颜色。
$im = imagecreatetruecolor($width, $height);
$bgcolor = imagecolorallocate($im, 255, 255, 255); // 白色背景
imagefill($im, 0, 0, $bgcolor);
2. 绘制圆角矩形
接下来,我们使用imagefilledarc函数在矩形的四个角上绘制圆弧。
// 圆角矩形参数
$im_width = 694;
$im_height = 368;
$radius = 10;
$dstx = 28;
$dsty = 40;
// 绘制四个角的圆弧
imagefilledarc($im, $dstx, $dsty, $im_width, $im_height, 0, 90, imagecolorallocate($im, 200, 200, 200), IMG_ARC_PIE);
imagefilledarc($im, $dstx, $dsty + $im_height - $radius, $im_width, $im_height, 270, 360, imagecolorallocate($im, 200, 200, 200), IMG_ARC_PIE);
imagefilledarc($im, $dstx + $im_width - $radius, $dsty, $im_width, $im_height, 180, 270, imagecolorallocate($im, 200, 200, 200), IMG_ARC_PIE);
imagefilledarc($im, $dstx + $im_width - $radius, $dsty + $im_height - $radius, $im_width, $im_height, 90, 180, imagecolorallocate($im, 200, 200, 200), IMG_ARC_PIE);
3. 输出图像
最后,我们将处理后的图像输出到浏览器或保存为文件。
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
三、图片覆盖法
// 加载原始图片
$original_im = imagecreatefrompng('original_image.png');
// 加载圆角图片
$rounded_im = imagecreatefrompng('rounded_corner.png');
$rounded_width = imagesx($rounded_im);
$rounded_height = imagesy($rounded_im);
// 将圆角图片粘贴到原始图片上
imagecopy($original_im, $rounded_im, 0, 0, 0, 0, $rounded_width, $rounded_height);
// 输出图像
header('Content-Type: image/png');
imagepng($original_im);
imagedestroy($original_im);
imagedestroy($rounded_im);