引言

一、PHP处理图片基础

1.1 PHP与图片格式

1.2 安装GD库

<?php
echo phpversion('gd');
?>

如果没有安装,您需要从PECL(PHP扩展和应用仓库)下载并安装GD库。

1.3 图片上传

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_FILES['image'])) {
        $image = $_FILES['image'];
        // 检查图片是否上传成功
        if ($image['error'] == 0) {
            // 处理图片
            // ...
        }
    }
}
?>

二、图片处理

2.1 读取图片

<?php
$image = imagecreatefromjpeg('example.jpg');
?>

2.2 图片处理

<?php
// 裁剪图片
$target = imagecreatetruecolor(100, 100);
imagecopyresampled($target, $image, 0, 0, 50, 50, 100, 100, 200, 200);
// 保存裁剪后的图片
imagejpeg($target, 'cropped.jpg');
?>

2.3 图片保存

<?php
imagejpeg($image, 'processed.jpg');
?>

三、图片存储与优化

3.1 图片存储格式选择

3.2 图片压缩

<?php
imagejpeg($image, 'compressed.jpg', 75); // 75为压缩质量,数值越低,压缩率越高
?>

3.3 图片缓存

四、案例实战

<?php
// 上传图片
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_FILES['image'])) {
        $image = $_FILES['image'];
        // 检查图片是否上传成功
        if ($image['error'] == 0) {
            // 读取图片
            $image = imagecreatefromjpeg($image['tmp_name']);
            // 裁剪图片
            $target = imagecreatetruecolor(100, 100);
            imagecopyresampled($target, $image, 0, 0, 50, 50, 100, 100, 200, 200);
            // 保存裁剪后的图片
            imagejpeg($target, 'cropped.jpg');
            // 清理内存
            imagedestroy($image);
            imagedestroy($target);
        }
    }
}
?>

五、总结