代码如下

登录后复制


这个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);
登录后复制
登录后复制

恩,知道了 ,明白了

09-16 00:39