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

PHP图像处理函数-剪裁、缩放、水印、格式转换

发布时间:2023-06-09 22:36:14

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 提供了一系列的图像处理函数,能够实现图片的剪裁、缩放、水印、格式转换等功能,对于开发人员来说,非常实用。在实际应用中,需要根据具体的需求选择恰当的函数。