准备工作

在开始之前,请确保您的PHP环境已经安装了GD库。您可以使用以下代码检查GD库是否已经安装:

if(function_exists('imagecreatetruecolor')) {
    echo "GD库已安装";
} else {
    echo "GD库未安装";
}

图片裁剪圆形的基本原理

  1. 读取原始图片。
  2. 创建一个新的画布,其大小与原始图片相同。
  3. 使用imagecolortransparent函数设置新画布的透明色。
  4. 使用imagefill函数填充新画布的背景色。
  5. 使用imagecopyresampled函数将原始图片复制到新画布上。
  6. 使用imagerectangle函数绘制圆角矩形。
  7. 使用imagefill函数填充圆角矩形,使其变为圆形。
  8. 输出或保存裁剪后的圆形图片。

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);
?>

总结