php实现图片转换
图片格式转换
使用PHP的GD库或Imagick扩展可以轻松实现图片格式转换。GD库是PHP默认的图像处理库,而Imagick提供了更丰富的功能。
通过GD库将JPEG转换为PNG:
$sourceImage = imagecreatefromjpeg('input.jpg');
imagepng($sourceImage, 'output.png');
imagedestroy($sourceImage);
通过Imagick转换图片格式:
$image = new Imagick('input.jpg');
$image->setImageFormat('png');
$image->writeImage('output.png');
$image->clear();
图片缩放
使用GD库调整图片尺寸:
$sourceImage = imagecreatefromjpeg('input.jpg');
$width = imagesx($sourceImage);
$height = imagesy($sourceImage);
$newWidth = 200;
$newHeight = 150;
$thumb = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresized($thumb, $sourceImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
imagejpeg($thumb, 'thumbnail.jpg');
imagedestroy($thumb);
imagedestroy($sourceImage);
使用Imagick保持宽高比缩放:
$image = new Imagick('input.jpg');
$image->resizeImage(200, 150, Imagick::FILTER_LANCZOS, 1, true);
$image->writeImage('thumbnail.jpg');
$image->clear();
图片水印添加
使用GD库添加文本水印:
$image = imagecreatefromjpeg('input.jpg');
$textColor = imagecolorallocate($image, 255, 255, 255);
imagettftext($image, 20, 0, 10, 30, $textColor, 'arial.ttf', 'Watermark');
imagejpeg($image, 'watermarked.jpg');
imagedestroy($image);
使用Imagick添加图片水印:

$image = new Imagick('input.jpg');
$watermark = new Imagick('watermark.png');
$image->compositeImage($watermark, Imagick::COMPOSITE_OVER, 10, 10);
$image->writeImage('watermarked.jpg');
$image->clear();
$watermark->clear();
图片滤镜应用
使用GD库应用黑白滤镜:
$image = imagecreatefromjpeg('input.jpg');
imagefilter($image, IMG_FILTER_GRAYSCALE);
imagejpeg($image, 'bw.jpg');
imagedestroy($image);
使用Imagick应用模糊效果:
$image = new Imagick('input.jpg');
$image->blurImage(5, 3);
$image->writeImage('blurred.jpg');
$image->clear();
图片旋转
使用GD库旋转图片:
$image = imagecreatefromjpeg('input.jpg');
$rotated = imagerotate($image, 45, 0);
imagejpeg($rotated, 'rotated.jpg');
imagedestroy($image);
imagedestroy($rotated);
使用Imagick旋转图片:

$image = new Imagick('input.jpg');
$image->rotateImage(new ImagickPixel('none'), 45);
$image->writeImage('rotated.jpg');
$image->clear();
图片裁剪
使用GD库裁剪图片:
$image = imagecreatefromjpeg('input.jpg');
$cropped = imagecrop($image, ['x' => 100, 'y' => 100, 'width' => 200, 'height' => 200]);
imagejpeg($cropped, 'cropped.jpg');
imagedestroy($image);
imagedestroy($cropped);
使用Imagick精确裁剪:
$image = new Imagick('input.jpg');
$image->cropImage(200, 200, 100, 100);
$image->writeImage('cropped.jpg');
$image->clear();
图片压缩
使用GD库控制JPEG质量:
$image = imagecreatefromjpeg('input.jpg');
imagejpeg($image, 'compressed.jpg', 75); // 75%质量
imagedestroy($image);
使用Imagick优化图片:
$image = new Imagick('input.jpg');
$image->setImageCompressionQuality(75);
$image->stripImage(); // 移除元数据
$image->writeImage('optimized.jpg');
$image->clear();





