标题:区域填充类
取消只看楼主
tty1960
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-16
 问题点数:0 回复次数:6 
区域填充类

using System;
using System.Drawing;
using System.Collections;

namespace drawing
{
/// <summary>
/// tianchong 的摘要说明。
/// </summary>
public class tianchong
{

public tianchong()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public void fill(int x, int y, Color newColor,Image CurImage)
{Point OldPoint=new Point();
Image image=CurImage;

// Color curcolor=new Color();
Point NewPoint=new Point();
Stack MyStack=new Stack();
Color FillColor=newColor;
Bitmap bitmap=new Bitmap(CurImage);
Color OldColor=bitmap.GetPixel(x,y);
MyStack.Push(new Point(x,y));
while(MyStack.Count!=0)
{
NewPoint=(Point)MyStack.Pop();
bitmap.SetPixel(NewPoint.X,NewPoint.Y,FillColor);
image=bitmap;
           //  curcolor=bitmap.GetPixel(NewPoint.X,NewPoint.Y);
if(bitmap.GetPixel(NewPoint.X+1,NewPoint.Y)!=FillColor && bitmap.GetPixel(NewPoint.X+1,NewPoint.Y)==OldColor)
{

MyStack.Push(new Point(NewPoint.X+1,NewPoint.Y));
}
if(bitmap.GetPixel(NewPoint.X,NewPoint.Y+1)!=FillColor && bitmap.GetPixel(NewPoint.X,NewPoint.Y+1)==OldColor)
{
MyStack.Push(new Point(NewPoint.X,NewPoint.Y+1));

}
if(bitmap.GetPixel(NewPoint.X-1,NewPoint.Y)!=FillColor && bitmap.GetPixel(NewPoint.X-1,NewPoint.Y)==OldColor)
{

MyStack.Push(new Point(NewPoint.X-1,NewPoint.Y));
}
if(bitmap.GetPixel(NewPoint.X,NewPoint.Y-1)!=FillColor && bitmap.GetPixel(NewPoint.X,NewPoint.Y-1)==OldColor)
{
MyStack.Push(new Point(NewPoint.X,NewPoint.Y-1));
}
}


}
}
}
不知道怎么回事画不出来,高手帮一下,用的是种子填充,看看是不是这个类的毛病.

搜索更多相关主题的帖子: 区域 
2006-12-08 18:28
tty1960
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-16
得分:0 
没有用,我是用来看看那位的象素改变了吗,结果是没有改变.
2006-12-08 20:47
tty1960
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-16
得分:0 
所以注释掉了
2006-12-08 20:48
tty1960
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-16
得分:0 

我想在pictureBox上画,pictureBox.image=bitmap,可以不?

2006-12-08 21:36
tty1960
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-16
得分:0 
还有有没有其他方法做填充呀
2006-12-08 21:37
tty1960
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-16
得分:0 
那你说我的可以吗,可是画不出来了,怎么办呀
2006-12-08 22:32
tty1960
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-16
得分:0 

想不通,DISPOSE后就没有原来的了,我还要判断是不是区域呀

2006-12-09 19:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-108185-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.414880 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved