PHP入门 – 图片处理/图片裁剪缩放大小/图片加水印

图片的裁剪缩放、加水印是在项目经常需要实现的功能,使用php实现这类功能非常简单。

图片处理,实现真实图片的资源转化

从指定的图片文件或 URL地址来新建一个图像。成功则返回一个图像标识符,失败时返回一个空字符串,并且输出一条错误信息。

resource imagecreatefrompng ( string filename )
从 PNG 文件或 URL 新建一图像

resource imagecreatefromjpeg ( string filename )

从 JPEG 文件或 URL 新建一图像

resource imagecreatefromgif ( string filename )

从 GIF 文件或 URL 新建一图像

resource imagecreatefromwbmp ( string filename )
从 WBMP 文件或 URL 新建一图像

以上函数的意义是将一个真实的图片转化为一个图片资源,然后可以利用php对图片资源的处理函数,实现很多操作。

$im = imagecreatefromjpeg('img/1.jpg');
$color = imagecolorallocate($im, 225,0,0);
imageline($im, 30,30,100,100,$color);
header('content-type:image/jpeg');
imagejpeg($im);
imagedestroy($im);

图片裁剪缩放大小

图像处理函数:

int imagesx ( resource image ) 取得图像宽度

int imagesy ( resource image ) 取得图像高度

array getimagesize ( string $filename [, array &$imageinfo ] ) 取得图像大小、类型等信息

bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

重采样拷贝部分图像并调整大小,是将一幅图像中的一块正方形区域拷贝到另一个图像中,平滑地插入像素值,因此,尤其是,减小了图像的大小而仍然保持了极大的清晰度。成功时返回 TRUE, 或者在失败时返回 FALSE。其中dst_image 和 src_image 分别是目标图像和源图像的标识符。

以下代码可以实现图片缩小50%:

$pic = 'img/1.jpg';
$pre = 0.5;
$im = imagecreatefromjpeg($pic);
$width = imagesx($im);
$height = imagesy($im);
$width_n = $width * $pre;
$height_n = $height * $pre;
$im_n = imagecreatetruecolor($width_n,$height_n);
imagecopyresampled($im_n, $im, 0,0,0,0, $width_n, $height_n, $width, $height);
header("content-type: image/jpeg");
imagejpeg($im_n);
imagedestroy($im);
imagedestroy($im_n);

图片添加水印

bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )

拷贝图像的一部分(也就是图片合成)。

将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。

$watermark = 'img/w.png';
$pic = 'img/2.jpg';
list($width_w,$height_w) = getimagesize($watermark);	//获取水印图片的宽高
list($width_p,$height_p) = getimagesize($pic);	//获取目标图片的宽高
$im_w = imagecreatefrompng($watermark);
$im_p = imagecreatefromjpeg($pic);
$pic_x = $width_p - $width_w;
$pic_y = $height_p - $height_w;
imagecopy($im_p, $im_w, $pic_x, $pic_y, 0, 0, $width_w, $height_w);
header('content-type: image/jpeg');
imagejpeg($im_p);
imagedestroy($im_p);
imagedestroy($im_w);

图片的旋转和翻转

resource imagerotate ( resource $src_im , float $angle , int $bgd_color [, int $ignore_transparent ] )

用给定角度旋转图像

将 src_im 图像用给定的 angle 角度旋转。bgd_color 指定了旋转后没有覆盖到的部分的颜色。

旋转的中心是图像的中心,旋转后的图像会按比例缩小以适合目标图像的大小——边缘不会被剪去。

如果 ignore_transparent 被设为非零值,则透明色会被忽略(否则会被保留)。

 

 

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇