准备工作
在开始之前,请确保您的PHP环境已经安装了GD库。您可以使用以下代码检查GD库是否已经安装:
if(function_exists('imagecreatetruecolor')) {
echo "GD库已安装";
} else {
echo "GD库未安装";
}
图片裁剪圆形的基本原理
- 读取原始图片。
- 创建一个新的画布,其大小与原始图片相同。
- 使用
imagecolortransparent函数设置新画布的透明色。 - 使用
imagefill函数填充新画布的背景色。 - 使用
imagecopyresampled函数将原始图片复制到新画布上。 - 使用
imagerectangle函数绘制圆角矩形。 - 使用
imagefill函数填充圆角矩形,使其变为圆形。 - 输出或保存裁剪后的圆形图片。
PHP代码实现
<?php
// 假设原始图片路径为原图.jpg
$sourceImage = '原图.jpg';
$targetImage = '裁剪后.jpg';
$cornerRadius = 50; // 圆角半径
// 读取原始图片
$source = imagecreatefromjpeg($sourceImage);
// 创建新的画布
$width = imagesx($source);
$height = imagesy($source);
$canvas = imagecreatetruecolor($width, $height);
// 设置透明色
$transparent = imagecolorallocatealpha($canvas, 255, 255, 255, 127);
imagefill($canvas, 0, 0, $transparent);
// 复制原始图片到新画布
imagecopyresampled($canvas, $source, 0, 0, 0, 0, $width, $height, $width, $height);
// 绘制圆角矩形
imagerectangle($canvas, 0, 0, $width - 1, $height - 1, $transparent);
// 填充圆角矩形,使其变为圆形
imagefill($canvas, 0, 0, $transparent);
// 输出或保存裁剪后的圆形图片
imagejpeg($canvas, $targetImage);
// 释放资源
imagedestroy($source);
imagedestroy($canvas);
?>