技术开发 频道

PHP高级技巧全放送(二)

    接下来,需要使用ImageFill()函数用这种颜色填充这个图像,ImageFill()函数有几个版本,例如ImageFillRectangle()、ImageFillPolygon()等。为简单起见,我们通过如下的格式使用ImageFill()函数:
ImageFill([image], [start x point], [start y point], [color]) ImageFill($newImg,0,0,$skyblue);
    最后,建立图像后释放图像句柄和所占用的内存:
ImagePNG($newImg); ImageDestroy($newImg); ?>
    这样,创建图像的全部代码如下所示:
$newImg = ImageCreate(250,250); $skyblue = ImageColorAllocate($newImg,136,193,255); ImageFill($newImg,0,0,$skyblue); ImagePNG($newImg); ImageDestroy($newImg); ?>
    如果把这个脚本文件保存为skyblue.php,并用浏览器访问它,就会看到一个天蓝色的250X250的PNG格式的图像。
我们还可以使用图像创建函数对图像进行处理,例如把一个较大图像作成一个小图像:

    假设你有一幅图像,想从中裁剪出一个35X35大小的图像。你所需要作的是创建一个35X35大小的空白图像,创建一个包含原来图像的图像流,然后把一个经过调整大小的原来的图像放到新的空白图像中。

    要完成这一任务的关健函数是ImageCopyResized(),它要求的格式如下所示:
ImageCopyResized([new image handle],[original image handle],[new image X], [new Image Y], [original image X], [original image Y], [new image X], [new image Y], [original image X], [original image Y])。 header("Content-type: image/png"); /* 建立保存新图像高度和宽度的变量*/ $newWidth = 35; $newHeight = 35; /* 建立给定高度和宽度的新的空白图像*/ $newImg = ImageCreate($newWidth,$newHeight); /* 从原来较大的图像中得到数据*/ $origImg = ImageCreateFromPNG("test.png"); /*拷贝调整大小后的图像,使用ImageSX()、ImageSY()得到原来的图像在X、Y方面上的大小 */ ImageCopyResized($newImg,$origImg,0,0,0,0,$newWidth,$newHeight,ImageSX($origImg),ImageSY($origImg)); /*创建希望得到的图像,释放内存 */ ImagePNG($newImg); ImageDestroy($newImg); ?>
    如果把这一小段脚本保存为resized.php,然后用浏览器对它进行访问,就会看到一个35X35大小的PNG格式的图形。
0
相关文章