| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1031 人关注过本帖
标题:区域填充类
只看楼主 加入收藏
tty1960
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-16
收藏
 问题点数:0 回复次数:10 
区域填充类

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
舞雪
Rank: 1
等 级:新手上路
威 望:1
帖 子:1786
专家分:0
注 册:2006-10-11
收藏
得分:0 
你把注释掉的代码恢复试试

呵呵,不愧是BC论坛
2006-12-08 20:06
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
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
你画在哪里了?
2006-12-08 20:53
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
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

画跟pictureBox.image=bitmap是不同的,

用gdi+画出来的,一遮盖再拿开就没了,pic那个赋值了就不会小石

2006-12-08 22:09
tty1960
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-16
收藏
得分:0 
那你说我的可以吗,可是画不出来了,怎么办呀
2006-12-08 22:32
jacklee
Rank: 7Rank: 7Rank: 7
来 自:XAplus
等 级:贵宾
威 望:32
帖 子:1769
专家分:104
注 册:2006-11-3
收藏
得分:0 

将要画上去的BITMAP,DISPOSE一次再次创建画布场景,画上你需要的东西,再PICTUREBOX1.IMAGE=MAP;就不会出现被盖或乱的现像了。


XAplus!
讨论群:51090447
删吧删吧,把我的号给删了!
2006-12-09 07:58
快速回复:区域填充类
数据加载中...
 
   



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

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