imagecopyresampled()函数的说明

imagecopyresampled() 这个函数将一幅图像中的一块正方形区域拷贝到另一个图像中,平滑地插入像素值。通常用来做缩略图用。

但是php.net上解释的不是太清晰。这里自己再重新整理下:

函数原型:

bool imagecopyresampled ( 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 )

$dst_image:新建的图片

$src_image:需要载入的图片

这两个没什么说的

$dst_x:设定需要载入的图片在新图中的x坐标(自己按需设置)

$dst_y:设定需要载入的图片在新图中的y坐标(自己按需设置)

以上是指源图像在目标图像里面的左上角的坐标值,通常需要指定下的。

$src_x:设定载入图片要载入的区域x坐标(通常0)

$src_y:设定载入图片要载入的区域y坐标(通常0)

以上这两个参数其实就是是在原图上截图一部分,用这个函数来做这个没太大意义感觉,PS裁切以下还更方便直观,这里通常直接设置0,0。就是说$src_image的图像全进去。

$dst_w:设定载入的原图的宽度(在此设置缩放)

$dst_h:设定载入的原图的高度(在此设置缩放)

以上两个参数铁定要自己设置下的,其实就是缩放后的值。

$src_w:原图要载入的宽度

$src_h:原图要载入的高度

以上两个没什么说的,可以自己用

int imagesx ( resource $image )和int imagesy ( resource $image )这两个函数去算$src_image得出就行。

综上,此函数一般需要自己多考虑的就是$dst_x,y,w,h这四个参数。

 

以下为试验代码,可以自己不断变动里面的参数来体会

<?php
header(‘Content-Type: image/jpeg’);

$img = ImageCreateTrueColor ( 500, 500 );//画布初始黑色的
$purple = ImageColorAllocate ( $img, 220, 120, 255 ); //定义图像颜色
imagefilledrectangle ( $img, 0, 0, 250,250, $purple); // 填充背景色

$im=ImageCreateTrueColor ( 500, 500 );
$green = ImageColorAllocate ( $im, 10, 60, 20 );
imagefilledrectangle ( $im, 0, 0, 250,250, $green);

imagecopyresampled ( $img, $im, 100,100, 0,0, 150, 150, 250,250 );
ImageJpeg($img);

imagedestroy ( $img );
imagedestroy ( $im );
?>

以上hahacool站长原创,转载注明出处

Tags: