/// <summary> /// 通过GX_PIXEL_FORMAT_ENTRY获取最优Bit位 /// </summary> /// <param name="em">图像数据格式</param> /// <returns>最优Bit位</returns> private GX_VALID_BIT_LIST __GetBestValudBit(GX_PIXEL_FORMAT_ENTRY emPixelFormatEntry) { GX_VALID_BIT_LIST emValidBits = GX_VALID_BIT_LIST.GX_BIT_0_7; switch (emPixelFormatEntry) { case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_MONO8: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GR8: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_RG8: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GB8: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_BG8: { emValidBits = GX_VALID_BIT_LIST.GX_BIT_0_7; break; } case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_MONO10: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GR10: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_RG10: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GB10: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_BG10: { emValidBits = GX_VALID_BIT_LIST.GX_BIT_2_9; break; } case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_MONO12: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GR12: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_RG12: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GB12: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_BG12: { emValidBits = GX_VALID_BIT_LIST.GX_BIT_4_11; break; } case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_MONO14: { //暂时没有这样的数据格式待升级 break; } case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_MONO16: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GR16: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_RG16: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GB16: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_BG16: { //暂时没有这样的数据格式待升级 break; } default: break; } return(emValidBits); }
private const uint GX_PIXEL_8BIT = 0x00080000; ///<8 bit data image format /// <summary> /// Get the best 8 bit by GX_PIXEL_FORMAT_ENTRY /// </summary> /// <param name="em">image format</param> /// <returns>best bit bit</returns> public static GX_VALID_BIT_LIST GetBestValidBit(GX_PIXEL_FORMAT_ENTRY emPixelFormatEntry) { GX_VALID_BIT_LIST emValidBits = GX_VALID_BIT_LIST.GX_BIT_0_7; switch (emPixelFormatEntry) { case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_MONO8: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GR8: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_RG8: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GB8: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_BG8: { emValidBits = GX_VALID_BIT_LIST.GX_BIT_0_7; break; } case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_MONO10: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GR10: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_RG10: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GB10: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_BG10: { emValidBits = GX_VALID_BIT_LIST.GX_BIT_2_9; break; } case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_MONO12: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GR12: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_RG12: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GB12: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_BG12: { emValidBits = GX_VALID_BIT_LIST.GX_BIT_4_11; break; } case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_MONO14: { //There is no such data format to be upgraded break; } case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_MONO16: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GR16: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_RG16: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_GB16: case GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_BAYER_BG16: { //There is no such data format to be upgraded break; } default: break; } return(emValidBits); }
/// <summary> /// 判断PixelFormat是否为8位 /// </summary> /// <param name="emPixelFormatEntry">图像数据格式</param> /// <returns>true为8为数据,false为非8位数据</returns> private bool __IsPixelFormat8(GX_PIXEL_FORMAT_ENTRY emPixelFormatEntry) { bool bIsPixelFormat8 = false; uint uiPixelFormatEntry = (uint)emPixelFormatEntry; if ((uiPixelFormatEntry & PIXEL_FORMATE_BIT) == GX_PIXEL_8BIT) { bIsPixelFormat8 = true; } return(bIsPixelFormat8); }
/// <summary> /// 判断PixelFormat是否为8位 /// </summary> /// <param name="emPixelFormatEntry">图像数据格式</param> /// <returns>true为8为数据,false为非8位数据</returns> private bool __IsPixelFormat8(GX_PIXEL_FORMAT_ENTRY emPixelFormatEntry) { uint PIXEL_FORMATE_BIT = 0x00FF0000; //用于与当前的数据格式进行与运算得到当前的数据位数 uint GX_PIXEL_8BIT = 0x00080000; //8位数据图像格式 bool bIsPixelFormat8 = false; uint uiPixelFormatEntry = (uint)emPixelFormatEntry; if ((uiPixelFormatEntry & PIXEL_FORMATE_BIT) == GX_PIXEL_8BIT) { bIsPixelFormat8 = true; } return(bIsPixelFormat8); }