imagecopyresized
(PHP 4, PHP 5, PHP 7)
imagecopyresized — 拷贝部分图像并调整大小
说明
$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
) :
bool
imagecopyresized() 将一幅图像中的一块矩形区域拷贝到另一个图像中。dst_image
和 src_image
分别是目标图像和源图像的标识符。
In other words, imagecopyresized() will take an rectangular area from src_image
of width src_w
and height src_h
at position (src_x
,src_y
) and place it in a rectangular area of dst_image
of width dst_w
and height dst_h
at position (dst_x
,dst_y
).
如果源和目标的宽度和高度不同,则会进行相应的图像收缩和拉伸。坐标指的是左上角。本函数可用来在同一幅图内部拷贝(如果 dst_image
和 src_image
相同的话)区域,但如果区域交迭的话则结果不可预知。
参数
-
dst_image
-
目标图象连接资源。
-
src_image
-
源图象连接资源。
-
dst_x
-
x-coordinate of destination point.
-
dst_y
-
y-coordinate of destination point.
-
src_x
-
x-coordinate of source point.
-
src_y
-
y-coordinate of source point.
-
dst_w
-
Destination width.
-
dst_h
-
Destination height.
-
src_w
-
源图象的宽度。
-
src_h
-
源图象的高度。
返回值
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
范例
Example #1 Resizing an image
这个例子会以一半的尺寸显示图片
<?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);
?>
以上例程的输出类似于:
The image will be output at half size, though better quality could be obtained using imagecopyresampled().
注释
Note:
因为调色板图像限制(255+1 种颜色)有个问题。重采样或过滤图像通常需要多于 255 种颜色,计算新的被重采样的像素及其颜色时采用了一种近似值。对调色板图像尝试分配一个新颜色时,如果失败我们选择了计算结果最接近(理论上)的颜色。这并不总是视觉上最接近的颜色。这可能会产生怪异的结果,例如空白(或者视觉上是空白)的图像。要跳过这个问题,请使用真彩色图像作为目标图像,例如用 imagecreatetruecolor() 创建的。
参见
imagecopyresampled() - 重采样拷贝部分图像并调整大小