如何判断该图像(pictureBox1.Image)是否与Properties.Resources.bug1中的图像相同?
我了解到我无法以这种形式进行操作:
aliases
我发现,“如果需要比较,则需要自己的图像比较算法。可以通过逐像素比较来实现。”
那是什么意思,我该怎么做呢?
答案 0 :(得分:0)
我正在假设您的代码在某些时候正在执行
pictureBox1.Image = Properties.Resources.bug1;
如果您从其他地方获取图像,并且图像之间有一些细微的差异,则此方法不起作用。我敢肯定有更好,更有效的方法,但是这里有一些东西:
比较这些数组以查看它们是否相同。
private byte[] GetImageBytes(Image img)
{
using (var ms = new System.IO.MemoryStream())
{
ImageConverter imgConverter = new ImageConverter();
return (byte[])imgConverter.ConvertTo(img, typeof(byte[]));
}
}
实施:
bool sameImage = GetImageBytes(pictureBox1.Image).SequenceEqual(GetImageBytes(Properties.Resources.bug1));