2014-02-05 72 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; 
} 
相關問題