(PHP 4, PHP 5, PHP 7, PHP 8)
imagecopyresized — 拷貝部分圖像并調(diào)整大小
$dst_image
,$src_image
,$dst_x
,$dst_y
,$src_x
,$src_y
,$dst_w
,$dst_h
,$src_w
,$src_h
imagecopyresized()
將一幅圖像中的一塊矩形區(qū)域拷貝到另一個(gè)圖像中。dst_image
和 src_image
分別是目標(biāo)圖像和源圖像的標(biāo)識(shí)符。
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
).
如果源和目標(biāo)的寬度和高度不同,則會(huì)進(jìn)行相應(yīng)的圖像收縮和拉伸。坐標(biāo)指的是左上角。本函數(shù)可用來在同一幅圖內(nèi)部拷貝(如果
dst_image
和 src_image
相同的話)區(qū)域,但如果區(qū)域交迭的話則結(jié)果不可預(yù)知。
dst_image
目標(biāo)圖象資源。
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
源圖象的高度。
成功時(shí)返回 true
, 或者在失敗時(shí)返回 false
。
示例 #1 Resizing an image
這個(gè)例子會(huì)以一半的尺寸顯示圖片
<?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().
注意:
因?yàn)檎{(diào)色板圖像限制(255+1 種顏色)有個(gè)問題。重采樣或過濾圖像通常需要多于 255 種顏色,計(jì)算新的被重采樣的像素及其顏色時(shí)采用了一種近似值。對調(diào)色板圖像嘗試分配一個(gè)新顏色時(shí),如果失敗我們選擇了計(jì)算結(jié)果最接近(理論上)的顏色。這并不總是視覺上最接近的顏色。這可能會(huì)產(chǎn)生怪異的結(jié)果,例如空白(或者視覺上是空白)的圖像。要跳過這個(gè)問題,請使用真彩色圖像作為目標(biāo)圖像,例如用 imagecreatetruecolor() 創(chuàng)建的。
imagecopyresampled() - 重采樣拷貝部分圖像并調(diào)整大小