2014-02-05 75 views
1

有什么方法可以确定两幅图像是否相同? 我想在每次计时器滴答(动画)时更改图像。 但是,我需要看看哪个图像正在显示,那么有什么办法可以比较两张图片 来做我想要的吗?确定两幅图像是否相同

if (myImage.Flags == (Image.FromFile(@"Images/Enemy.png").Flags)) 
{ 
    myImage = Image.FromFile(@"Images/Enemy2.png"); 
} 
else 
{ 
    myImage = Image.FromFile(@"Images/Enemy.png"); 
} 
+2

你不比较图像。您将信息保存在单独的变量中。 – Euphoric

+0

我想你可以计算两个文件的哈希值,然后比较哈希值。 –

+1

是否所有的图像都有不同的文件名?如果是这样应该*真的很容易 –

回答

3

不要对比图像,只需保持当前图像的索引中的变量。

下面是对任意数量的图像工作的例子:

private int _currentImageIndex; 
private string[] _imagePaths = 
{ 
    "Images/Enemy.png", 
    "Images/Enemy2.png", 
    "Images/Enemy3.png", 
}; 


... 


void NextImage() 
{ 
    // Dispose the current image 
    Image img = pictureBox1.Image; 
    pictureBox1.Image = null; 
    if (img != null) 
     img.Dispose(); 

    // Show the next image 
    _currentImageIndex = (_currentImageIndex + 1) % _imagePaths.Length; 
    string path = _imagePaths[_currentImageIndex]; 
    pictureBox1.Image = Image.FromFile(path); 
} 
0

这里去简单的答案。

在短短的2个图像的情况下,使用标志

// field, true if enemy2.png is loaded 
bool _image2; 

// somewhere 
if(_image2) 
{ 
    myImage = Image.FromFile(@"Images/Enemy.png"); 
    _image2 = false; 
} 
else 
{ 
    myImage = Image.FromFile(@"Images/Enemy2.png"); 
    _image2 = true; 
} 
相关问题