超高难度问题:C#实现图像的文本化(估计没有几个人会了,呵呵) 另外一个问题:C#下将真彩图转256色图的问题:http://community.csdn.net/Expert/topic/3527/3527909.xml?temp=.5745203 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我没学过美术,不知道颜色间的关系,无法很好的表现颜色的深浅,所以转的效果不是很好:1、定义一些必要的对象Image image = Image.FromFile(fileName);Bitmap b = new Bitmap(image);stirng s = "";2、根据像素的颜色对图片进行转换for(int i = 0; i < b.Height; i+=3){ for(int j = 0; j < b.Width; j+=1) { Color c = b.GetPixel(j, i); // 取得每个像素的颜色 // 这里是对像素颜色的判断 // 这里应该是个颜色范围的判断,但问题是我不知道范围该怎么取 // 所以我只能用单一的颜色简单的判断一下了 // 根据对颜色的判断返回一个与颜色匹配的字符 if(c.ToArgb() == 0) s += " "; // 像素是否为透明色 else if(c.ToArgb() == Color.White.ToArgb()) s += " "; // 像素是否为白色 else if(c.ToArgb() == Color.Black.ToArgb()) s += "$"; //像素是否为黑色 else s += "*"; // 循环一下系统消息队列 Application.DoEvents(); } s += "\n"; // 换行}3、将转换的字符串用 DrawString() 绘制到一个新建的 Image 上// 取得一个 Graphics 对象Graphics g = Graphics.FromImage(b);// 返回转换后的字符串所占的 2D SizeSizeF sf = g.MeasureString(s, this.Font);// 新建一个 Bitmap 对象, 对象的大小由 字符串的 2D Size 决定Bitmap b1 = new Bitmap((int)sf.Width, (int)sf.Height);// 由新建的 B1 返回一个 Graphics 对象g = Graphics.FromImage(b1);// DrawString()g.DrawString(s, this.Font, Brushes.Black, 0.0f, 00.0f);// 释放 Graphics 占用的资源g.Dispose();4、显示图像PictureBox box = new PictureBox();box.Location = new Point(0, 0);box.SizeMode = PictureBoxSizeMode.AutoSize;box.Image = b1;this.AutoScroll = true;this.Controls.Add(box); 高手进 嵌套 repeater 下 checkbox 的 oncheckedchanged 事件 web service 怎么传递实体? 这种做法是否可取? 有没有C#开发的票据打印程序啊 .net 第一次作业,如何整蛊老师?感兴趣的高手教下,谢谢啦 LIST<t> 添加实体值被覆盖问题 C# Scoket通讯 客户端如何读取服务端发来的消息 C#关于泛型的问题! remoting 信道已注册问题,请高手帮忙 TreeView只有Text,没有nodeData这个属性吗 通过web上传文件的小问题 Class cannot span across files这句话是什么意思,应该如何翻译?
Image image = Image.FromFile(fileName);
Bitmap b = new Bitmap(image);
stirng s = "";2、根据像素的颜色对图片进行转换
for(int i = 0; i < b.Height; i+=3)
{
for(int j = 0; j < b.Width; j+=1)
{
Color c = b.GetPixel(j, i); // 取得每个像素的颜色
// 这里是对像素颜色的判断
// 这里应该是个颜色范围的判断,但问题是我不知道范围该怎么取
// 所以我只能用单一的颜色简单的判断一下了
// 根据对颜色的判断返回一个与颜色匹配的字符
if(c.ToArgb() == 0) s += " "; // 像素是否为透明色
else if(c.ToArgb() == Color.White.ToArgb()) s += " "; // 像素是否为白色
else if(c.ToArgb() == Color.Black.ToArgb()) s += "$"; //像素是否为黑色
else s += "*";
// 循环一下系统消息队列
Application.DoEvents();
}
s += "\n"; // 换行
}3、将转换的字符串用 DrawString() 绘制到一个新建的 Image 上
// 取得一个 Graphics 对象
Graphics g = Graphics.FromImage(b);
// 返回转换后的字符串所占的 2D Size
SizeF sf = g.MeasureString(s, this.Font);
// 新建一个 Bitmap 对象, 对象的大小由 字符串的 2D Size 决定
Bitmap b1 = new Bitmap((int)sf.Width, (int)sf.Height);
// 由新建的 B1 返回一个 Graphics 对象
g = Graphics.FromImage(b1);
// DrawString()
g.DrawString(s, this.Font, Brushes.Black, 0.0f, 00.0f);
// 释放 Graphics 占用的资源
g.Dispose();4、显示图像
PictureBox box = new PictureBox();
box.Location = new Point(0, 0);
box.SizeMode = PictureBoxSizeMode.AutoSize;
box.Image = b1;
this.AutoScroll = true;
this.Controls.Add(box);