1. 准备工作

在开始之前,请确保您的服务器已安装PHP和GD库,因为GD库是PHP处理图像的核心扩展。

2. 获取图片信息

list($srcw, $srch) = getimagesize($srcimg);

3. 创建图像资源

switch ($imageNewageInfo[2]) {
    case 1: // GIF
        $image = imagecreatefromgif($picName);
        break;
    case 2: // JPEG
        $image = imagecreatefromjpeg($picName);
        break;
    case 3: // PNG
        $image = imagecreatefrompng($picName);
        break;
    default:
        die("图片类型错误!");
}

4. 计算缩放比例

$dstscale = $maxy / $maxx;
$srcscale = $srch / $srcw;

这里,$maxx$maxy 分别是缩放后的最大宽度和高度。

5. 根据比例调整大小

if ($srcscale > $dstscale) {
    $h = intval($srcw * $dstscale);
    $w = intval($h / $dstscale);
    $x = 0;
    $y = ($srch - $h) / 2;
} else {
    $w = intval($srch / $dstscale);
    $h = intval($w * $dstscale);
    $x = ($srcw - $w) / 2;
    $y = 0;
}

6. 创建目标图像资源

根据缩放后的尺寸,创建目标图像资源。以下是一个示例:

$image_new = imagecreatetruecolor($w, $h);

这里,$w$h 是缩放后的宽度和高度。

7. 复制并调整图片

imagecopyresampled($image_new, $image, 0, 0, 0, 0, $w, $h, $srcw, $srch);

这里,$image_new 是目标图像资源,$image 是原始图像资源。

8. 保存图片

imagejpeg($image_new, $pre . "a.jpg");

总结