在Web开发中,我们经常需要处理各种类型的文件,其中图片是最常见的一种,PHP作为一种广泛使用的服务器端脚本语言,提供了多种处理图片的方法,本文将介绍PHP中处理图片的常用方法,包括创建缩略图、旋转图片、添加水印等。
1、创建缩略图
创建缩略图是处理图片的常见需求之一,在PHP中,我们可以使用GD库来创建缩略图,以下是一个简单的示例:
<?php function createThumbnail($src, $dst, $newWidth, $newHeight) { list($width, $height) = getimagesize($src); $thumb = imagecreatetruecolor($newWidth, $newHeight); switch (strtolower(substr(imagetype($src), 6))) { case 'gif': $srcImage = imagecreatefromgif($src); break; case 'jpg': case 'jpeg': $srcImage = imagecreatefromjpeg($src); break; case 'png': $srcImage = imagecreatefrompng($src); break; } imagecopyresampled($thumb, $srcImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); switch (strtolower(substr(imagetype($src), 6))) { case 'gif': imagegif($thumb, $dst); break; case 'jpg': case 'jpeg': imagejpeg($thumb, $dst); break; case 'png': imagepng($thumb, $dst); break; } } ?>
2、旋转图片
有时候我们需要旋转图片以适应特定的布局或显示效果,在PHP中,我们可以使用GD库来旋转图片,以下是一个简单的示例:
<?php function rotateImage($src, $dst, $angle) { list($width, $height) = getimagesize($src); $image = imagecreatetruecolor($width, $height); switch (strtolower(substr(imagetype($src), 6))) { case 'gif': $source = imagecreatefromgif($src); break; case 'jpg': case 'jpeg': $source = imagecreatefromjpeg($src); break; case 'png': $source = imagecreatefrompng($src); break; } $rotate = imagerotate($source, $angle, 0); switch (strtolower(substr(imagetype($src), 6))) { case 'gif': imagegif($rotate, $dst); break; case 'jpg': case 'jpeg': imagejpeg($rotate, $dst); break; case 'png': imagepng($rotate, $dst); break; } } ?>
3、添加水印
为图片添加水印是一种常见的保护版权的方法,在PHP中,我们可以使用GD库来添加水印,以下是一个简单的示例:
<?php function addWatermark($src, $dst, $watermark) { list($width, $height) = getimagesize($src); $image = imagecreatetruecolor($width, $height); switch (strtolower(substr(imagetype($src), 6))) { case 'gif': $source = imagecreatefromgif($src); break; case 'jpg': case 'jpeg': $source = imagecreatefromjpeg($src); break; case 'png': $source = imagecreatefrompng($src); break; } imagecopymerge($image, $source, 0, 0, 0, 0, $width, $height, 100); // 设置水印透明度为100%(不透明)或根据需要调整透明度值(例如50表示半透明) switch (strtolower(substr(imagetype($src), 6))) { case 'gif': imagegif($image, $dst); break; case 'jpg': case 'jpeg': imagejpeg($image, $dst); break; case 'png': imagepng($image, $dst); break; } } ?>
还没有评论,来说两句吧...