就是类似windows操作系统自带的附件画图软件中的油漆桶功能是如何实现的?是一个像素点一个像素点地判断颜色,然后再做决定是否替换颜色,然后还得判断是否连通吗?要是那样的话,一个4000*4000像素的位图,一共一千六百万像素,要是这样判断的话,那得多长时间啊!我感觉做 if 判断多了很费时间。我用画图软件做了如下实验,下边是一个4000*4000的图片,
我启动油漆桶功能,点击图片左上角白色像素,只用了一秒钟,就把所有与点击点相连通的白色像素都替换成了绿色,显然不会做过多的 if 判断。那它是怎么判断的呢?又得判断颜色,又得判断是否连通,时间又那么短,它是怎么做到的?关键是怎么判断连通性。
我自己编程用 if 逐个像素点判断该点是否在自己设定的椭圆内,目标图片是一个2000*2000的图片文件,结果用了14分钟,我还以为死机了呢,期间我都刷完牙洗完脚了,而画图只用了一秒钟,方法肯定是有问题的。到底应该怎么判断,不要用指针,因为我对指针很不懂,不要用unsafe代码。