7. PHP 拷贝图像 imagecopy 与 imagecopyresized 函数

imagecopy() 函数用于拷贝图像或图像的一部分。imagecopyresized() 函数用于拷贝部分图像并调整大小。

imagecopy()

imagecopy() 函数用于拷贝图像或图像的一部分,成功返回 TRUE ,否则返回 FALSE 。

语法:

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 )
参数说明:
参数 说明
dst_im 目标图像
src_im 被拷贝的源图像
dst_x 目标图像开始 x 坐标
dst_y 目标图像开始 y 坐标,x,y同为 0 则从左上角开始
src_x 拷贝图像开始 x 坐标
src_y 拷贝图像开始 y 坐标,x,y同为 0 则从左上角开始拷贝
src_w (从 src_x 开始)拷贝的宽度
src_h (从 src_y 开始)拷贝的高度

例子:

<?php
header("Content-type: image/jpeg");

//创建目标图像
$dst_im = imagecreatetruecolor(150, 150);

//源图像
$src_im = @imagecreatefromjpeg("images/flower_1.jpg");

//拷贝源图像左上角起始 150px 150px
imagecopy( $dst_im, $src_im, 0, 0, 0, 0, 150, 150 );

//输出拷贝后图像
imagejpeg($dst_im);

imagedestroy($dst_im);
imagedestroy($src_im);
?>

imagecopyresized()

imagecopyresized() 函数用于拷贝图像或图像的一部分并调整大小,成功返回 TRUE ,否则返回 FALSE 。

语法:

bool imagecopyresized( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y,
 int dst_w, int dst_h, int src_w, int src_h )

本函数参数可参看 imagecopy() 函数,只是本函数增加了两个参数(注意顺序):

  1. dst_w:目标图像的宽度。
  2. dst_h:目标图像的高度。

imagecopyresized() 的典型应用就是生成图片的缩略图:

<?php
header("Content-type: image/jpeg");

//原图文件
$file = "images/flower_1.jpg";

// 缩略图比例
$percent = 0.5;

// 缩略图尺寸
list($width, $height) = getimagesize($file);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// 加载图像
$src_im = @imagecreatefromjpeg($file);
$dst_im = imagecreatetruecolor($newwidth, $newheight);

// 调整大小
imagecopyresized($dst_im, $src_im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

//输出缩小后的图像
imagejpeg($dst_im);

imagedestroy($dst_im);
imagedestroy($src_im);
?>

上面的例子将原图缩小为原来的一半尺寸。

本文地址: 

imagecopy() 函数用于拷贝图像或图像的一部分。imagecopyresized() 函数用于拷贝部分图像并调整大小。

imagecopy()

imagecopy() 函数用于拷贝图像或图像的一部分,成功返回 TRUE ,否则返回 FALSE 。

语法:

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 )
参数说明:
参数 说明
dst_im 目标图像
src_im 被拷贝的源图像
dst_x 目标图像开始 x 坐标
dst_y 目标图像开始 y 坐标,x,y同为 0 则从左上角开始
src_x 拷贝图像开始 x 坐标
src_y 拷贝图像开始 y 坐标,x,y同为 0 则从左上角开始拷贝
src_w (从 src_x 开始)拷贝的宽度
src_h (从 src_y 开始)拷贝的高度

例子:

<?php
header("Content-type: image/jpeg");

//创建目标图像
$dst_im = imagecreatetruecolor(150, 150);

//源图像
$src_im = @imagecreatefromjpeg("images/flower_1.jpg");

//拷贝源图像左上角起始 150px 150px
imagecopy( $dst_im, $src_im, 0, 0, 0, 0, 150, 150 );

//输出拷贝后图像
imagejpeg($dst_im);

imagedestroy($dst_im);
imagedestroy($src_im);
?>

imagecopyresized()

imagecopyresized() 函数用于拷贝图像或图像的一部分并调整大小,成功返回 TRUE ,否则返回 FALSE 。

语法:

bool imagecopyresized( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y,
 int dst_w, int dst_h, int src_w, int src_h )

本函数参数可参看 imagecopy() 函数,只是本函数增加了两个参数(注意顺序):

  1. dst_w:目标图像的宽度。
  2. dst_h:目标图像的高度。

imagecopyresized() 的典型应用就是生成图片的缩略图:

<?php
header("Content-type: image/jpeg");

//原图文件
$file = "images/flower_1.jpg";

// 缩略图比例
$percent = 0.5;

// 缩略图尺寸
list($width, $height) = getimagesize($file);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// 加载图像
$src_im = @imagecreatefromjpeg($file);
$dst_im = imagecreatetruecolor($newwidth, $newheight);

// 调整大小
imagecopyresized($dst_im, $src_im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

//输出缩小后的图像
imagejpeg($dst_im);

imagedestroy($dst_im);
imagedestroy($src_im);
?>

上面的例子将原图缩小为原来的一半尺寸。


本文地址: http://blog.csdn.net/aerchi/article/details/51953012

发布了430 篇原创文章 · 获赞 415 · 访问量 925万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览