📜  PHP图像处理和 GD 函数完整参考(1)

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

PHP图像处理和 GD 函数完整参考

如果你需要在PHP应用程序中操纵图像,那么GD库是你的答案。GD库是一个开源的库,提供了可以用来创建和操作图像的函数集。本文将为你提供GD库的完整参考,包括各种GD函数的用途和参数列表。

1. 简介

GD库提供了一组函数,可以用来创建或修改图像。这些函数可以用来进行以下操作:

  • 创建新的图像
  • 打开已有的图像
  • 编辑和修改图像
  • 保存图像到文件或输出到浏览器
2. 安装

如果你想在你的PHP应用使用GD库,你需要确保已经安装了GD库扩展。要安装GD库扩展,请查看你的操作系统/环境的文档,例如:

  • Ubuntu: sudo apt-get install php-gd
  • CentOS: sudo yum install php-gd
  • Windows: 在 php.ini 中取消注释 ;extension=gd2 并重新启动Apache
3. 创建和打开图像

下面是创建和打开图像的函数列表:

函数名 | 描述 ---|--- imagecreate($width, $height) | 创建一个指定大小的空白图像 imagecreatefromjpeg($filename) | 打开一个JPEG图像,并将其解码为图像标识符 imagecreatefrompng($filename) | 打开一个PNG图像,并将其解码为图像标识符 imagecreatefromgif($filename) | 打开一个GIF图像,并将其解码为图像标识符 imagecreatefrombmp($filename) | 打开一个BMP图像,并将其解码为图像标识符

创建一个指定大小的空白图像:

$width = 300;
$height = 200;
$image = imagecreate($width, $height);

// 输出到浏览器
header('Content-Type: image/jpeg');
imagejpeg($image);

// 保存到文件
imagejpeg($image, 'example.jpg');

打开一个已有的图像:

$filename = 'example.jpg';
$image = imagecreatefromjpeg($filename);
4. 编辑和修改图像

下面是一些常用的编辑和修改图像的函数:

函数名 | 描述 ---|--- imagesavealpha($image, $saveflag) | 设置图像标识符的alpha通道 imagecolorallocate($image, $red, $green, $blue) | 为图像分配一种颜色 imageline($image, $x1, $y1, $x2, $y2, $color) | 在图像上画一条线 imagestring($image, $font, $x, $y, $text, $color) | 在图像上输出一个字符串 imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) | 重采样拷贝部分图像并调整大小到另一个图像中

为图像设置alpha通道:

// 创建一个空白的PNG图像
$width = 300;
$height = 200;
$image = imagecreatetruecolor($width, $height);
imagesavealpha($image, true);

// 使图像透明
$transparancy = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparancy);

// 画一个半透明的红色矩形
$red = imagecolorallocatealpha($image, 255, 0, 0, 63);
imagefilledrectangle($image, 50, 50, 200, 150, $red);

// 输出到浏览器
header('Content-Type: image/png');
imagepng($image);

// 保存到文件
imagepng($image, 'example.png');

画一条线:

// 创建一个空白的图像
$width = 300;
$height = 200;
$image = imagecreate($width, $height);

// 画一条黑色的线
$black = imagecolorallocate($image, 0, 0, 0);
$x1 = 0;
$y1 = 0;
$x2 = $width;
$y2 = $height;
imageline($image, $x1, $y1, $x2, $y2, $black);

// 输出到浏览器
header('Content-Type: image/jpeg');
imagejpeg($image);

// 保存到文件
imagejpeg($image, 'example.jpg');

在图像上输出一个字符串:

// 创建一个空白的图像
$width = 300;
$height = 200;
$image = imagecreate($width, $height);

// 输出一个字符串
$black = imagecolorallocate($image, 0, 0, 0);
$x = 50;
$y = 100;
$string = 'Hello, world!';
imagestring($image, 5, $x, $y, $string, $black);

// 输出到浏览器
header('Content-Type: image/jpeg');
imagejpeg($image);

// 保存到文件
imagejpeg($image, 'example.jpg');

重采样拷贝部分图像并调整大小到另一个图像中:

// 打开两张图片
$src_filename = 'photo.jpg';
$src_image = imagecreatefromjpeg($src_filename);

$dst_filename = 'thumbnail.jpg';
$dst_image = imagecreatetruecolor(100, 100);

// 复制并缩放图像
imagecopyresampled($dst_image, $src_image, 0, 0, 0, 0, 100, 100, imagesx($src_image), imagesy($src_image));

// 输出到浏览器
header('Content-Type: image/jpeg');
imagejpeg($dst_image);

// 保存到文件
imagejpeg($dst_image, $dst_filename);
5. 总结

在本文中,我们详细介绍了GD库及其函数。这些函数可以用来创建、编辑、修改和保存图像。通过本文,你应该能够了解如何使用GD库在你的PHP应用程序中进行图像操作。