欢迎访问宙启技术站
智能推送

PHP函数中的图像操作示例

发布时间:2023-11-20 21:57:50

PHP中提供了丰富的图像操作函数,可以用来处理图像的生成、缩放、裁剪、旋转、合成等操作。下面是一些PHP图像操作的示例:

1. 生成图像:

  <?php
  $image = imagecreate(200, 100); // 创建一个200x100的空白图像
  $bgColor = imagecolorallocate($image, 255, 255, 255); // 设置背景颜色为白色
  $textColor = imagecolorallocate($image, 0, 0, 0); // 设置文本颜色为黑色

  imagestring($image, 5, 50, 50, 'Hello PHP', $textColor); // 在图像上写入文本

  header('Content-type: image/png'); // 告诉浏览器输出的是PNG格式的图像
  imagepng($image); // 输出图像
  imagedestroy($image); // 销毁图像
  ?>
  

2. 缩放图像:

  <?php
  $srcImage = imagecreatefromjpeg('source.jpg'); // 打开源图像
  $srcWidth = imagesx($srcImage); // 获取源图像的宽度
  $srcHeight = imagesy($srcImage); // 获取源图像的高度

  $newWidth = 200; // 新图像的宽度
  $newHeight = $srcHeight * ($newWidth / $srcWidth); // 根据比例计算新图像的高度

  $newImage = imagecreatetruecolor($newWidth, $newHeight); // 创建一个新图像
  imagecopyresampled($newImage, $srcImage, 0, 0, 0, 0, $newWidth, $newHeight, $srcWidth, $srcHeight); // 将源图像缩放到新图像

  imagejpeg($newImage, 'new.jpg', 80); // 输出新图像为JPEG格式
  imagedestroy($srcImage); // 销毁源图像
  imagedestroy($newImage); // 销毁新图像
  ?>
  

3. 裁剪图像:

  <?php
  $srcImage = imagecreatefromjpeg('source.jpg'); // 打开源图像
  $srcWidth = imagesx($srcImage); // 获取源图像的宽度
  $srcHeight = imagesy($srcImage); // 获取源图像的高度

  $newImage = imagecrop($srcImage, ['x' => 50, 'y' => 50, 'width' => 100, 'height' => 100]); // 裁剪图像

  imagejpeg($newImage, 'crop.jpg', 80); // 输出裁剪后的图像为JPEG格式
  imagedestroy($srcImage); // 销毁源图像
  imagedestroy($newImage); // 销毁裁剪后的图像
  ?>
  

4. 旋转图像:

  <?php
  $srcImage = imagecreatefromjpeg('source.jpg'); // 打开源图像
  $angle = 45; // 旋转角度(顺时针)

  $newImage = imagerotate($srcImage, $angle, 0); // 旋转图像

  imagejpeg($newImage, 'rotate.jpg', 80); // 输出旋转后的图像为JPEG格式
  imagedestroy($srcImage); // 销毁源图像
  imagedestroy($newImage); // 销毁旋转后的图像
  ?>
  

5. 合成图像:

  <?php
  $background = imagecreatefromjpeg('background.jpg'); // 打开背景图像
  $logo = imagecreatefrompng('logo.png'); // 打开Logo图像

  $logoWidth = imagesx($logo); // 获取Logo图像的宽度
  $logoHeight = imagesy($logo); // 获取Logo图像的高度

  $dstX = imagesx($background) - $logoWidth - 10; // 在背景图像右上角10像素的位置放置Logo
  $dstY = 10;

  imagecopy($background, $logo, $dstX, $dstY, 0, 0, $logoWidth, $logoHeight); // 合成图像

  header('Content-type: image/jpeg');
  imagejpeg($background); // 输出合成后的图像为JPEG格式

  imagedestroy($background); // 销毁背景图像
  imagedestroy($logo); // 销毁Logo图像
  ?>
  

这些示例只是PHP图像操作的冰山一角,PHP还提供了很多其他图像操作函数供开发者使用。通过这些函数,我们可以方便地实现各种图像处理需求,例如生成验证码、缩略图、图像水印等。