大哥大姐大叔大声们来帮小弟一把拉~~~~~~~~~~~~~~~

yeeloge 2009-03-14 01:51:52
比如 下面的图片(200*200)有没有什么快速的找到小红框的坐标啊???




...全文
74 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgke 2009-03-14
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(GetRectangleBmp(Image.FromFile(@"C:\1.jpg")).ToString());

}

private Point GetRectangleBmp(Image p_Image)
{
Bitmap _NewBitmap = new Bitmap(p_Image.Width, p_Image.Height,PixelFormat.Format24bppRgb);
Graphics _Graphics = Graphics.FromImage(_NewBitmap);
_Graphics.DrawImage(p_Image, 0, 0, p_Image.Width, p_Image.Height);
_Graphics.Dispose();
BitmapData _Data = _NewBitmap.LockBits(new Rectangle(0, 0, _NewBitmap.Width, _NewBitmap.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);

byte[] _DataBytes = new byte[_NewBitmap.Width * _NewBitmap.Height * 3];
System.Runtime.InteropServices.Marshal.Copy(_Data.Scan0, _DataBytes, 0, _DataBytes.Length);

int _ReadIndex = 0;
for (int i = 0; i != _NewBitmap.Height; i++)
{
for (int z = 0; z != _NewBitmap.Width; z++)
{
if (_DataBytes[_ReadIndex * 3+2] > 200 && _DataBytes[_ReadIndex * 3 + 1] < 100 && _DataBytes[_ReadIndex * 3] < 100)
{
_NewBitmap.UnlockBits(_Data);
_NewBitmap.Dispose();
return new Point(z, i);
}
_ReadIndex++;
}
}
_NewBitmap.UnlockBits(_Data);
_NewBitmap.Dispose();
return new Point(-1, -1);
}


看看行不行

111,126

社区成员

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

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

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