PHP图像处理函数-剪裁、缩放、水印、格式转换
PHP是一种优秀的服务器端脚本语言,它具有强大的图像处理功能。PHP提供了一系列的图像处理函数,能够实现图片的剪裁、缩放、水印、格式转换等功能,本文将对这些函数进行简单介绍。
一、图像剪裁函数
1.imagecrop($src_image, $crop)
函数描述:从一个图像中剪裁出一个矩形区域。
参数说明:
$src_image:源图像,imagecreatefromjpeg、imagecreatefrompng、imagecreatefromgif 等函数创建的图像资源。
$crop:一个数组,表示剪裁的矩形区域,包括左上角坐标和右下角坐标。
返回值:返回剪裁后的图像资源。
示例:
<?php
$src = imagecreatefromjpeg('src.jpg');
$crop = ['x'=>100, 'y'=>100, 'width'=>200, 'height'=>200];
$dst = imagecrop($src, $crop);
header('Content-Type: image/jpeg');
imagejpeg($dst);
imagedestroy($src);
imagedestroy($dst);
?>
2.imagecropauto($src_image, $mode, $threshold, $color)
函数描述:从一个图像中自动剪裁出一个矩形区域。
参数说明:
$src_image:源图像,imagecreatefromjpeg、imagecreatefrompng、imagecreatefromgif 等函数创建的图像资源。
$mode:剪裁模式,可以是以下常量之一:IMG_CROP_DEFAULT、IMG_CROP_TRANSPARENT、IMG_CROP_BLACK、IMG_CROP_WHITE。
$threshold:当模式为 IMG_CROP_THRESHOLD 时使用的颜色阈值。
$color:当模式为 IMG_CROP_THRESHOLD 时使用的背景颜色。
返回值:返回剪裁后的图像资源。
示例:
<?php
$src = imagecreatefromjpeg('src.jpg');
$dst = imagecropauto($src, IMG_CROP_DEFAULT);
header('Content-Type: image/jpeg');
imagejpeg($dst);
imagedestroy($src);
imagedestroy($dst);
?>
二、图像缩放函数
1.imagescale($src_image, $new_width, $new_height, $mode)
函数描述:缩放图像到指定尺寸。
参数说明:
$src_image:源图像,imagecreatefromjpeg、imagecreatefrompng、imagecreatefromgif 等函数创建的图像资源。
$new_width:缩放后的宽度。
$new_height:缩放后的高度。
$mode:缩放模式,可以是以下常量之一:IMG_NEAREST_NEIGHBOUR、IMG_BILINEAR_FIXED、IMG_BICUBIC、IMG_BICUBIC_FIXED。
返回值:返回缩放后的图像资源。
示例:
<?php
$src = imagecreatefromjpeg('src.jpg');
$dst = imagescale($src, 200, 200, IMG_BICUBIC_FIXED);
header('Content-Type: image/jpeg');
imagejpeg($dst);
imagedestroy($src);
imagedestroy($dst);
?>
2.imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h)
函数描述:将源图像的一部分或全部复制到目标图像,并按照指定尺寸进行缩放。
参数说明:
$dst_image:目标图像。
$src_image:源图像。
$dst_x:目标图像的左上角 X 坐标。
$dst_y:目标图像的左上角 Y 坐标。
$src_x:源图像的左上角 X 坐标。
$src_y:源图像的左上角 Y 坐标。
$dst_w:目标图像的宽度。
$dst_h:目标图像的高度。
$src_w:源图像的宽度。
$src_h:源图像的高度。
返回值:无。
示例:
<?php
$src = imagecreatefromjpeg('src.jpg');
$dst = imagecreatetruecolor(200, 200);
imagecopyresampled($dst, $src, 0, 0, 0, 0, 200, 200, imagesx($src), imagesy($src));
header('Content-Type: image/jpeg');
imagejpeg($dst);
imagedestroy($src);
imagedestroy($dst);
?>
三、图像水印函数
1.imagecopymerge($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct)
函数描述:将源图像复制到目标图像,并按照指定透明度进行合并。
参数说明:
$dst_image:目标图像。
$src_image:源图像。
$dst_x:目标图像的左上角 X 坐标。
$dst_y:目标图像的左上角 Y 坐标。
$src_x:源图像的左上角 X 坐标。
$src_y:源图像的左上角 Y 坐标。
$src_w:源图像的宽度。
$src_h:源图像的高度。
$pct:透明度百分比,范围从 0 到 100。
返回值:无。
示例:
<?php
$src = imagecreatefromjpeg('watermark.png');
$dst = imagecreatefromjpeg('src.jpg');
imagecopymerge($dst, $src, imagesx($dst)-imagesx($src), imagesy($dst)-imagesy($src), 0, 0, imagesx($src), imagesy($src), 50);
header('Content-Type: image/jpeg');
imagejpeg($dst);
imagedestroy($src);
imagedestroy($dst);
?>
2.imagecopy($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h)
函数描述:将源图像复制到目标图像,不进行任何处理。
参数说明:
$dst_image:目标图像。
$src_image:源图像。
$dst_x:目标图像的左上角 X 坐标。
$dst_y:目标图像的左上角 Y 坐标。
$src_x:源图像的左上角 X 坐标。
$src_y:源图像的左上角 Y 坐标。
$src_w:源图像的宽度。
$src_h:源图像的高度。
返回值:无。
示例:
<?php
$src = imagecreatefromjpeg('watermark.png');
$dst = imagecreatefromjpeg('src.jpg');
imagecopy($dst, $src, imagesx($dst)-imagesx($src), imagesy($dst)-imagesy($src), 0, 0, imagesx($src), imagesy($src));
header('Content-Type: image/jpeg');
imagejpeg($dst);
imagedestroy($src);
imagedestroy($dst);
?>
四、图像格式转换函数
1.imagecreatefromjpg($filename)
函数描述:从 JPEG 文件中创建一副新图像。
参数说明:
$filename:JPEG 文件名。
返回值:返回创建的图像资源。
示例:
<?php
$src = imagecreatefromjpeg('src.jpg');
header('Content-Type: image/jpeg');
imagejpeg($src);
imagedestroy($src);
?>
2.imagecreatefrompng($filename)
函数描述:从 PNG 文件中创建一副新图像。
参数说明:
$filename:PNG 文件名。
返回值:返回创建的图像资源。
示例:
<?php
$src = imagecreatefrompng('src.png');
header('Content-Type: image/png');
imagepng($src);
imagedestroy($src);
?>
3.imagecreatefromgif($filename)
函数描述:从 GIF 文件中创建一副新图像。
参数说明:
$filename:GIF 文件名。
返回值:返回创建的图像资源。
示例:
<?php
$src = imagecreatefromgif('src.gif');
header('Content-Type: image/gif');
imagegif($src);
imagedestroy($src);
?>
综上所述,PHP 提供了一系列的图像处理函数,能够实现图片的剪裁、缩放、水印、格式转换等功能,对于开发人员来说,非常实用。在实际应用中,需要根据具体的需求选择恰当的函数。
