重采样拷贝部分图像并调整大小

先介绍一个自己写的函数。 复制代码
代码如下: imagecopyresampled imagecopyresampled —
重采样拷贝部分图像并调整大小。 int imagecopyresampled ( resource
dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int
dstW, int dstH, int srcW, int srcH) imagecopyresampled()
将一幅图像中的一块正方形区域拷贝到另一个图像中,平滑地插入像素值,因此,尤其是,减小了图像的大小而仍然保持了极大的清晰度。dst_im
和 src_im
分别是目标图像和源图像的标识符。如果源和目标的宽度和高度不同,则会进行相应的图像收缩和拉伸。坐标指的是左上角。本函数可用来在同一幅图内部拷贝(如果
dst_im 和 src_im 相同的话)区域,但如果区域交迭的话则结果不可预知。
注: 因为调色板图像限制有个问题。重采样或过滤图像通常需要多于 255
种颜色,计算新的被重采样的像素及其颜色时采用了一种近似值。对调色板图像尝试分配一个新颜色时,如果失败我们选择了计算结果最接近的颜色。这并不总是视觉上最接近的颜色。这可能会产生怪异的结果,例如空白的图像。要跳过这个问题,请使用真彩色图像作为目标图像,例如用
imagecreatetruecolor() 创建的。 注: imagecopyresampled() 需要 GD 2.0.l
或更高版本。 一个简单的示例: 复制代码
代码如下: 示例2: 复制代码 代码如下:
$ratio_orig) { $width = $height*$ratio_orig; } else { $height =
$width/$ratio_orig; } // Resample $image_p = imagecreatetruecolor;
$image = imagecreatefromjpeg; imagecopyresampled($image_p, $image, 0,
0, 0, 0, $width, $height, $width_orig, $height_orig); // Output
imagejpeg; ?> 有两种改变图像大小的方法: ImageCopyResized()
函数在所有GD版本中有效,但其缩放图像的算法比较粗糙。
ImageCopyResamples(),其像素插值算法得到的图像边缘比较平滑。(但该函数的速度比
ImageCopyResized。 两个函数的参数是一样的,如下: 复制代码 代码如下:
imageCopyResampled(dest,src,dy,dx,sx,sy,dw,dh,sw,sh);
imageCopyResized(dest,src,dy,dx,sx,sy,dw,dh,sw,sh); 例子: 复制代码 代码如下:
在php中如何改变jpg图像文件的尺寸大小 复制代码 代码如下: function resize_jpg{ //
$thumb = imagecreate ; $image = imagecreatefromjpeg; $imagedata =
getimagesize; if $h =
$w/($imagedata[0]/$imagedata[1]);//根据原图的纵横比得出高度! $thumb
= imagecreatetruecolor ; imagecopyresized ($thumb, $image, 0, 0, 0, 0,
$w, $h, $imagedata[0], $imagedata[1]); imagejpeg; } //resize_jpg;
resize_jpg(“images/dsc01244.jpg”,100,100); imagedestory; imagedestory;
?> 函数代码: 复制代码 代码如下:

网站地图xml地图