本质上来说你只能 是去对比两个图片的像素内容是否相同。没有办法判断是否引用的同一个对象。
我帮你在网上找了一个代码,可以先试试
- bool CompareBitmaps(Bitmap bmp1, Bitmap bmp2)
- {
- if (bmp1.Size != bmp2.Size) return false;
- BitmapData data1 = bmp1.LockBits(new Rectangle(0, 0, bmp1.Width, bmp1.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
- BitmapData data2 = bmp2.LockBits(new Rectangle(0, 0, bmp2.Width, bmp2.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
- int byteCount = data1.Stride * bmp1.Height;
- byte[] bytes1 = new byte[byteCount];
- byte[] bytes2 = new byte[byteCount];
- System.Runtime.InteropServices.Marshal.Copy(data1.Scan0, bytes1, 0, byteCount);
- System.Runtime.InteropServices.Marshal.Copy(data2.Scan0, bytes2, 0, byteCount);
- bmp1.UnlockBits(data1);
- bmp2.UnlockBits(data2);
- return bytes1.SequenceEqual(bytes2);
- }
复制代码 |