确定两个图像是否相同

时间:2014-02-05 15:22:32

标签: c# image

有没有办法确定两张图片是否相同? 我想在每次计时器滴答(动画)时更改图像。 但是,我需要查看哪个图像正在显示,所以有没有办法比较2个图像 做我想做的事情?

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

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

我试着比较ImageLocation。虽然如果将图片作为资源,它就不起作用。

if (PictureBox1.ImageLocation == PictureBox2.ImageLocation)
{

}

看我的问题: Dynamically changing image in a picturebox

答案 2 :(得分: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;
}