imagecopyresized
(PHP 3, PHP 4, PHP 5)
imagecopyresized -- 拷贝部分图像并调整大小
说明
bool
imagecopyresized
( 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 )
imagecopyresized()
将一幅图像中的一块正方形区域拷贝到另一个图像中。
dst_image
和
src_image
分别是目标图像和源图像的标识符。如果源和目标的宽度和高度不同,则会进行相应的图像收缩和拉伸。坐标指的是左上角。本函数可用来在同一幅图内部拷贝(如果
dst_image
和
src_image
相同的话)区域,但如果区域交迭的话则结果不可预知。
注:
因为调色板图像限制(255+1 种颜色)有个问题。重采样或过滤图像通常需要多于 255
种颜色,计算新的被重采样的像素及其颜色时采用了一种近似值。对调色板图像尝试分配一个新颜色时,如果失败我们选择了计算结果最接近(理论上)的颜色。这并不总是视觉上最接近的颜色。这可能会产生怪异的结果,例如空白(或者视觉上是空白)的图像。要跳过这个问题,请使用真彩色图像作为目标图像,例如用
imagecreatetruecolor()
创建的。
范例
例子 1. 调整图像大小
本例将以原来的一半大小显示图像。
<?php
// File and new size
$filename
=
'test.jpg'
;
$percent
=
0.5
;
// Content type
header
(
'Content-type: image/jpeg'
);
// Get new sizes
list(
$width
,
$height
) =
getimagesize
(
$filename
);
$newwidth
=
$width
*
$percent
;
$newheight
=
$height
*
$percent
;
// Load
$thumb
=
imagecreatetruecolor
(
$newwidth
,
$newheight
);
$source
=
imagecreatefromjpeg
(
$filename
);
// Resize
imagecopyresized
(
$thumb
,
$source
,
0
,
0
,
0
,
0
,
$newwidth
,
$newheight
,
$width
,
$height
);
// Output
imagejpeg
(
$thumb
);
?>
|
图像将以一半大小输出,不过可以用
imagecopyresampled()
得到更好的质量。
|