我正在编程Visual Basic.NET in Visual studio 2017 RC。如何使用“PictureBox.Image.Flags”属性
在我的形式,我使用的是图片框名为“图片框”。我试图获取有关在图片框内使用显示的图片信息PictureBox.Image.Flags属性因此用户可以查看这些信息。
但是,使用此属性似乎非常困难,因为它返回的值是其他值的总和。
什么是使用此属性的权利和最有效的方法?如果它不起作用,是否有另一种方式来代表图像标志信息而不使用此属性?
我正在编程Visual Basic.NET in Visual studio 2017 RC。如何使用“PictureBox.Image.Flags”属性
在我的形式,我使用的是图片框名为“图片框”。我试图获取有关在图片框内使用显示的图片信息PictureBox.Image.Flags属性因此用户可以查看这些信息。
但是,使用此属性似乎非常困难,因为它返回的值是其他值的总和。
什么是使用此属性的权利和最有效的方法?如果它不起作用,是否有另一种方式来代表图像标志信息而不使用此属性?
来测试各个标志使用而功能
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
如果设置了标志,括号内的值将不为零。在这种情况下是一个二进制和。 –
谢谢,它工作!但我不明白“ \t 括号中的值如果设置标志将不为零”。 – HEA
你必须理解AND如何在二进制中工作... 1010 AND 0010 = 0010 ...这不是零。 –
由于MSDN和对象浏览器解释它是System.Drawing.Imaging.ImageFlags这个System.Drawing.Image的按位组合它是一个枚举,所以你可以使用flags.HasFlag(...) '测试一个值 – Plutonix
@Plutonix在哪里使用flags.HasFlag(...)以及在哪里? – HEA
Hasflag似乎没有附加到旗帜@Plutonix –