📜  PHP |想象一下 drawImage()函数(1)

📅  最后修改于: 2023-12-03 15:33:35.684000             🧑  作者: Mango

PHP | 想象一下 drawImage() 函数

简介

drawImage() 函数是 PHP GD 库提供的一个功能强大的函数,用于将图片绘制到画布中。它支持将图片调整大小、切割、旋转、透明度、位置等操作,是绘图和图像处理常用的函数之一。

语法
bool imagecopyresampled(
    resource $dst_image,  // 目标图像资源
    resource $src_image,  // 源图像资源
    int $dst_x, int $dst_y,  // 目标 x、y 坐标
    int $src_x, int $src_y,  // 源 x、y 坐标
    int $dst_w, int $dst_h,  // 目标宽度、高度
    int $src_w, int $src_h   // 源宽度、高度
)
参数说明
  • $dst_image:目标图像资源,即要将源图像绘制到的画布。
  • $src_image:源图像资源,即要绘制到目标图像上的图片。
  • $dst_x$dst_y:目标图像的左上角坐标。
  • $src_x$src_y:源图像的左上角坐标。
  • $dst_w$dst_h:目标图像的宽度和高度。
  • $src_w$src_h:源图像的宽度和高度。

使用 drawImage() 函数需要先创建以上两个资源,并将源图像绘制到目标图像上,函数才能生效。下面是快速创建资源的方式:

$dst_image = imagecreatetruecolor($dst_w, $dst_h);
$src_image = imagecreatefromjpeg($src_file);

其中,imagecreatetruecolor() 函数用来创建一个空的目标图像资源,imagecreatefromjpeg() 函数用来从一个 JPEG 格式的文件读取图像资源。

示例

下面是一个使用 drawImage() 函数将一张源图像绘制到目标图像上的案例:

// 目标图像大小(480*320)
$dst_w = 480;
$dst_h = 320;

// 源图像大小
list($src_w, $src_h) = getimagesize($src_file);

// 计算最终绘制到目标图像中图像的比例和大小
$ratio = min($dst_w / $src_w, $dst_h / $src_h);
$dst_w = $src_w * $ratio;
$dst_h = $src_h * $ratio;

// 创建目标图像资源和源图像资源
$dst_image = imagecreatetruecolor($dst_w, $dst_h);
$src_image = imagecreatefromjpeg($src_file);

// 将源图像绘制到目标图像上
imagecopyresampled(
    $dst_image,  // 目标图像资源
    $src_image,  // 源图像资源
    0, 0,        // 目标 x、y 坐标
    0, 0,        // 源 x、y 坐标
    $dst_w, $dst_h,  // 目标宽度、高度
    $src_w, $src_h   // 源宽度、高度
);

// 输出绘制好的图像
header('Content-Type: image/jpeg');
imagejpeg($dst_image);

在以上例子中,我们将一个 JPEG 格式的源图像按比例绘制到一个 480*320 大小的目标图像上,并输出绘制完成的图像。其中,使用了 getimagesize() 函数可以方便地获取到一个图像文件的宽度和高度信息。

总结

drawImage() 函数是 PHP GD 库中非常重要而强大的一个函数,它可以用于将图片绘制到画布中,并支持各种图像处理操作。使用该函数需要首先创建两个资源——目标图像和源图像,然后再调用 imagecopyresampled() 函数将源图像绘制到目标图像中。使用 drawImage() 函数能够让我们轻松地实现各种图片处理需求,为网站和应用的设计提供了更多的可能性。