c# 比较两个picturebox 显示的图片是否相同

来源:百度知道 编辑:UC知道 时间:2024/06/07 05:58:30
我有两个picturebox容器,它们的中的图片都是:
pb11.Image = imageList1.Images[2];
pb12.Image = imageList1.Images[2];
然后有个比较:
if (pb11.Image ==pb12.Image )
{
MessageBox.Show("相等");
return;
}
可是程序运行时却根本没有进入IF语句执行,这是为什么呢?

List<string> list1 = new List<string>();
List<string> list2 = new List<string>();
if (list1 == list2)
Console.WriteLine(true);
else
Console.WriteLine(false);

参看这个例子
输出是false

你那样比较两个对象,似乎不行吧

我重新写了一个,利用内存流
你可以参考

private bool Same(Image image1, Image image2)
{
MemoryStream ms1 = new MemoryStream();
MemoryStream ms2 = new MemoryStream();

image1.Save(ms1, System.Drawing.Imaging.ImageFormat.Bmp);
image2.Save(ms2, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] im1 = ms1.GetBuffer();
byte[] im2 = ms2.GetBuffer();
if (im1.Length != im2.Length)
return false;
else
{
for (int i = 0; i < im1.Length; i++)
if (im1[i] != im2[i])