2017-02-27 38 views
1

我正在编程Visual Basic.NET in Visual studio 2017 RC如何使用“PictureBox.Image.Flags”属性

在我的形式,我使用的是图片框名为“图片框”。我试图获取有关在图片框内使用显示的图片信息PictureBox.Image.Flags属性因此用户可以查看这些信息。

但是,使用此属性似乎非常困难,因为它返回的值是其他值的总和。

什么是使用此属性的权利和最有效的方法?如果它不起作用,是否有另一种方式来代表图像标志信息而不使用此属性

+2

由于MSDN和对象浏览器解释它是System.Drawing.Imaging.ImageFlags这个System.Drawing.Image的按位组合它是一个枚举,所以你可以使用flags.HasFlag(...) '测试一个值 – Plutonix

+0

@Plutonix在哪里使用flags.HasFlag(...)以及在哪里? – HEA

+0

Hasflag似乎没有附加到旗帜@Plutonix –

回答

0

来测试各个标志使用功能

If (PictureBox1.Image.Flags And System.Drawing.Imaging.ImageFlags.ColorSpaceGray) <> 0 Then 

或倍数

Imports System.Drawing.Imaging.ImageFlags 


If (PictureBox1.Image.Flags And (ColorSpaceGray + ColorSpaceRgb)) <> 0 Then 

替代

Imports System.Drawing.Imaging 
Imports System.Drawing.Imaging.ImageFlags 

If CType(PictureBox1.Image.Flags, ImageFlags).HasFlag(ColorSpaceGray) then 

或其倍数

If CType(PictureBox1.Image.Flags, ImageFlags).HasFlag(CType(ColorSpaceGray + ColorSpaceRgb, ImageFLags)) then 
+0

如果设置了标志,括号内的值将不为零。在这种情况下是一个二进制和。 –

+0

谢谢,它工作!但我不明白“ \t 括号中的值如果设置标志将不为零”。 – HEA

+0

你必须理解AND如何在二进制中工作... 1010 AND 0010 = 0010 ...这不是零。 –