如我有一张大图片A.jpg
然后我在这个图片中用矩形截取了一片图片保存为b.jpg
然后现在用C#程序
如何得出
图片b.jpg在a.jpg的x1和y1的位置?谢谢
然后我在这个图片中用矩形截取了一片图片保存为b.jpg
然后现在用C#程序
如何得出
图片b.jpg在a.jpg的x1和y1的位置?谢谢
解决方案 »
- 怎么根据字符串名字循环实例化类
- TransactionScope事务处理主外键表插入错误
- SqlDataAdapter分页
- MAPX在c#中实现点击一点出现另一张图,选中一点删除
- .Net里用什么技术传输文件比较好?请高手指教!
- 谁有《.NET企业应用高级编程——C#编程篇》电子版 ,给我一个 90分求,学习中
- 请你们给我讲一下操作系统,系统怎样判定用户程序有特权指令的代码,怎样让它转向内核态。
- 如何使用Sql语句存储二进制文本?(问题解决后马上结贴)
- 如何传送一个自定义类到XML WebServer 上的方法中。
- 讨论:这样的dll c#能够调用吗?
- vs2010 C#里面的webBrowser的问题.谢谢了.
- 小弟应老师要求用C#做个学生管理系统,可怎么也练不上数据库,望各位高手帮帮忙看下是哪里的问题!
然后,PictureBox_MouseDown事件。画矩形。Point point = new Point(e.X, e.Y);
----------------
不用。。因为我的图片的小图是一定和里面的一小部分一样的
所以我想用byte数组的方法,但对比不到public class Location
{
public int X1 { get; set; }
public int Y1 { get; set; }
public int X2 { get; set; }
public int Y2 { get; set; }
} public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
var imgbyte = imageToByteArray("C:\\1.jpg");
var subtyte = imageToByteArray("C:\\2.jpg");
var list = new List<Location>();
byte a, b;
for (int i = 0; i <= imgbyte.Length - 1; i++)
{
a = imgbyte[i];
b = subtyte[0];
if (imgbyte[i] == subtyte[0])
{
//如果找到再找子是相对应
for (int j = 1; j <= subtyte.Length - 1; j++)
{
a = imgbyte[i + j];
b = subtyte[j];
if (imgbyte[i + j] == subtyte[j])
{
if (j == subtyte.Length - 1)
{
//说明一样
list.Add(new Location() { X1 = i, X2 = i + j });
}
}
else
{
break;
}
}
}
}
foreach (var item in list)
{
System.Console.WriteLine("X1 = " + item.X1 + ", X2 = " + item.X2);
}
} /// <summary>
/// 图片转为Byte字节数组
/// </summary>
/// <param name="FilePath">路径</param>
/// <returns>字节数组</returns>
private byte[] imageToByteArray(string FilePath)
{
using (MemoryStream ms = new MemoryStream())
{ using (Image imageIn = Image.FromFile(FilePath))
{ using (Bitmap bmp = new Bitmap(imageIn))
{
bmp.Save(ms, imageIn.RawFormat);
} }
return ms.ToArray();
}
}
/// <summary>
/// 字节数组生成图片
/// </summary>
/// <param name="Bytes">字节数组</param>
/// <returns>图片</returns>
private Image byteArrayToImage(byte[] Bytes)
{
using (MemoryStream ms = new MemoryStream(Bytes))
{
Image outputImg = Image.FromStream(ms);
return outputImg;
}
}
}