将图片框中的图像与默认图像进行比较
Compare image in picture-box to default image
我已将 Picturebox.Image
分配给默认图像。但它仍然通过 If 语句并打开新的 Diaglog。我不知道为什么?请帮助我!
private void saveBtn_Click(object sender, EventArgs e)
{
if (imgBox.Image == Properties.Resources.DefaultImage || imgBox.Image == Properties.Resources.EmptyPhoto)
{
MessageBox.Show("Warning! Cannot save this image!");
}
else
{
SaveNoti save = new SaveNoti();
save.sender = new SaveNoti.SEND(Task_functions);
save.ShowDialog();
}
}
因为每次你从资源中读取图片你都会得到一个新副本然后==
会returnfalse
(因为它显然是通过引用比较)。如果您将在 GDI+ 图形中使用来自资源的位图...您最好记住这一点。
将它们保存在某处:
static readonly Image DefaultImage = Properties.Resources.DefaultImage;
static readonly Image EmptyPhone = Property.Resources.EmptyPhoto;
然后一定要始终使用它们来分配imgBox.Image
属性(您分配默认值的地方):
imgBox.Image = DefaultImage; // Do not use Properties.Resources.DefaultImage
现在您可以检查是否相等(在点击处理程序内):
if (imgBox.Image == DefaultImage || imgBox.Image == EmptyPhoto)
{
MessageBox.Show("Warning! Cannot save this image!");
}
如果您多次使用它,只需提取一个方法:
private bool IsDefaultImage
=> imgBox.Image == DefaultImage || imgBox.Image == EmptyPhoto;
不正确!这是我的代码:
static readonly Image DefaultImage = Properties.Resources.DefaultImage;
static readonly Image EmptyPhone = Property.Resources.EmptyPhoto;
private void saveBtn_Click(object sender, EventArgs e)
{
imgBox.Image.Dispose();
imgBox.Image = DefaultImage;
if (imgBox.Image == DefaultImage)
{
MessageBox.Show("Warning! Cannot save this image!");
}
else
{
SaveNoti save = new SaveNoti();
save.sender = new SaveNoti.SEND(Task_functions);
save.ShowDialog();
}
第 imgBox.Image = DefaultImage;
行的结果是参数无效
我已将 Picturebox.Image
分配给默认图像。但它仍然通过 If 语句并打开新的 Diaglog。我不知道为什么?请帮助我!
private void saveBtn_Click(object sender, EventArgs e)
{
if (imgBox.Image == Properties.Resources.DefaultImage || imgBox.Image == Properties.Resources.EmptyPhoto)
{
MessageBox.Show("Warning! Cannot save this image!");
}
else
{
SaveNoti save = new SaveNoti();
save.sender = new SaveNoti.SEND(Task_functions);
save.ShowDialog();
}
}
因为每次你从资源中读取图片你都会得到一个新副本然后==
会returnfalse
(因为它显然是通过引用比较)。如果您将在 GDI+ 图形中使用来自资源的位图...您最好记住这一点。
将它们保存在某处:
static readonly Image DefaultImage = Properties.Resources.DefaultImage;
static readonly Image EmptyPhone = Property.Resources.EmptyPhoto;
然后一定要始终使用它们来分配imgBox.Image
属性(您分配默认值的地方):
imgBox.Image = DefaultImage; // Do not use Properties.Resources.DefaultImage
现在您可以检查是否相等(在点击处理程序内):
if (imgBox.Image == DefaultImage || imgBox.Image == EmptyPhoto)
{
MessageBox.Show("Warning! Cannot save this image!");
}
如果您多次使用它,只需提取一个方法:
private bool IsDefaultImage
=> imgBox.Image == DefaultImage || imgBox.Image == EmptyPhoto;
不正确!这是我的代码:
static readonly Image DefaultImage = Properties.Resources.DefaultImage;
static readonly Image EmptyPhone = Property.Resources.EmptyPhoto;
private void saveBtn_Click(object sender, EventArgs e)
{
imgBox.Image.Dispose();
imgBox.Image = DefaultImage;
if (imgBox.Image == DefaultImage)
{
MessageBox.Show("Warning! Cannot save this image!");
}
else
{
SaveNoti save = new SaveNoti();
save.sender = new SaveNoti.SEND(Task_functions);
save.ShowDialog();
}
第 imgBox.Image = DefaultImage;
行的结果是参数无效