Maison >développement back-end >tutoriel php >PHP GD绘图问题,请大牛帮忙。感觉很简单,但是本人太菜,弄不懂

PHP GD绘图问题,请大牛帮忙。感觉很简单,但是本人太菜,弄不懂

WBOY
WBOYoriginal
2016-06-20 12:30:03756parcourir

代码如下

<?php$im = imagecreatetruecolor(400,200);$background = imagecolorallocate($im,0,0,0);$black = imagecolorallocate($im,0,255,255);imagefill($im, 100, 100, $black);header("content-type:image/png");imagepng($im);//提示:对于用 imagecreate() 建立的图像,第一次调用 imagecolorallocate() 会自动给图像填充背景色。?>


这个imagefill是从后面第二第三个参数,也就是X,Y坐标开始填充,但是为什么显示的却是整个png都填充了?


回复讨论(解决方案)

imagefill 的第二、第三个参数 是被充填区域内的一点
这个点作为种子(始发点)向周围扩散
能理解吗?

imagefill 的第二、第三个参数 是被充填区域内的一点
这个点作为种子(始发点)向周围扩散
能理解吗?


那如何才能只填充其中的一部分呢

imagefilledarc -- 画一椭圆弧且填充
imagefilledarc -- 画一椭圆弧且填充
imagefilledpolygon -- 画一多边形并填充
imagefilledrectangle -- 画一矩形并填充
imagefilltoborder -- 区域填充到指定颜色的边界为止

imagefilledarc -- 画一椭圆弧且填充
imagefilledarc -- 画一椭圆弧且填充
imagefilledpolygon -- 画一多边形并填充
imagefilledrectangle -- 画一矩形并填充
imagefilltoborder -- 区域填充到指定颜色的边界为止

那能在跟我讲一下imagefill吗 上面你说的那个扩散只是一知半解 。

你不看手册的吗?
手册中都有示例代码

你不看手册的吗?
手册中都有示例代码

imagefill()  在 image 图像的坐标 x,y(图像左上角为 0, 0)处用 color 颜色执行区域填充(即与 x, y 点颜色相同且相邻的点都会被填充)。 手册上这么写,看不太明白

不是说了么,点(x,y)是种子,种子当然只会繁衍出相同的后代
如果点(x,y) 是红色,那么与他相邻的红色的点都会被改变

这个你的自己动动手,光是冥想是理解不了的

$im = imagecreatetruecolor(300, 200);$white = imagecolorallocate($im, 255, 255, 255);$red = imagecolorallocate($im, 255, 0, 0);$green = imagecolorallocate($im, 0, 255, 0);$blue = imagecolorallocate($im, 0, 0, 255);imagefill($im, 0, 0, $white);imagerectangle($im, 50, 30, 250, 170, $red);imagefill($im, 51, 31, $green);imagepng($im);

这个你的自己动动手,光是冥想是理解不了的

$im = imagecreatetruecolor(300, 200);$white = imagecolorallocate($im, 255, 255, 255);$red = imagecolorallocate($im, 255, 0, 0);$green = imagecolorallocate($im, 0, 255, 0);$blue = imagecolorallocate($im, 0, 0, 255);imagefill($im, 0, 0, $white);imagerectangle($im, 50, 30, 250, 170, $red);imagefill($im, 51, 31, $green);imagepng($im);

恩,知道了 ,明白了
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn