PictureBox.Image 为null

GoldKi 2011-11-18 11:13:13
我给PictureBox 绘制了一个图片。在页面上PictureBox已经显示了这个图片,
但是我无法获取到这个图片,通过PictureBox.Image获得的是null值。
是否有什么方法获取到这个图片,因为我想转成位码存入DB!
谢谢!
...全文
448 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
GoldKi 2011-11-18
  • 打赏
  • 举报
回复
解决了。
Bitmap bmp = new Bitmap(pic.Width,pic.Height);
pic.DrawToBitmap(bmp, new Rectangle(0, 0, pic.Width, pic.Height));

MemoryStream ms = new MemoryStream();

bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);

byte[] byteImg = new Byte[ms.Length];
ms.Read(byteImg, 0, byteImg.Length);
bsdekj2 2011-11-18
  • 打赏
  • 举报
回复
估计你不是通过修改PictureBox的Image值来生成图片的吧。
难道是用重绘生成的?重绘当然image里面是空的啦。你是对画板画的
sdl2005lyx 2011-11-18
  • 打赏
  • 举报
回复
“PictureBox 绘制了一个图片”,你是如何绘制的,把代码贴出来。。。
GoldKi 2011-11-18
  • 打赏
  • 举报
回复
一个人都不来回答还是看不上这50分啊?
http://blog.csdn.net/xiaoxiao108/article/details/7226120 前些天,12306这个网站挺火的,看到网上出现了各种各样的登陆、订票插件跟程序。虽然没经历过春运,看到网上各种各样的插件跟工具挺有意思的,下载了几个看了看,都挺不错的。印象中有个java版本的订票程序里面有个验证码识别功能,用tesseract-ocr来识别验证码的,如果验证码不是很复杂识别效果还可以。 开发环境 vs2008 开发语言C# 使用方法很简单 1.下载tesseract 的.net 类库tessnet2_32.dll ,添加引用。 http://www.pixel-technology.com/freeware/tessnet2/ 2.下载tesseract 相对应的语言包。 http://code.google.com/p/tesseract-ocr/downloads/list 3.调用tesseract 的方法进行识别。 具体代码 1.读取网上的验证码到pictureBox中 //string url = "https://dynamic.12306.cn/otsweb/passCodeAction.do?rand=lrand"; string url = "http://static.baixing.net/pages/mobile.php?c=bcqsFelX+vKQcrnIbhyDYQ==/2.jpg"; HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; HttpWebResponse response = request.GetResponse() as HttpWebResponse; System.IO.Stream responseStream = response.GetResponseStream(); this.pictureBox1.Image = Image.FromStream(responseStream); 2.OCR类 public class Ocr { public void DumpResult(List result) { foreach (tessnet2.Word word in result) //Console.WriteLine("{0} : {1}", word.Confidence, word.Text); MessageBox.Show(string.Format("{0} : {1}", word.Confidence, word.Text)); } public List DoOCRNormal(Bitmap image, string lang) { tessnet2.Tesseract ocr = new tessnet2.Tesseract(); ocr.Init(null, lang, false); List result = ocr.DoOCR(image, Rectangle.Empty); DumpResult(result); return result; } System.Threading.ManualResetEvent m_event; public void DoOCRMultiThred(Bitmap image, string lang) { tessnet2.Tesseract ocr = new tessnet2.Tesseract(); ocr.Init(null, lang, false); // If the Oc

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧