internal static PixelFormat GetPixelFormat(GFL_BITMAP_TYPE bitmap_type) { switch (bitmap_type) { case GFL_BITMAP_TYPE.GFL_BINARY: return PixelFormat.Format1bppIndexed; case GFL_BITMAP_TYPE.GFL_GREY: return PixelFormat.Format8bppIndexed; case GFL_BITMAP_TYPE.GFL_COLORS: return PixelFormat.Format8bppIndexed; case GFL_BITMAP_TYPE.GFL_RGB: return PixelFormat.Format24bppRgb; case GFL_BITMAP_TYPE.GFL_RGBA: return PixelFormat.Format32bppArgb; case GFL_BITMAP_TYPE.GFL_BGR: return PixelFormat.Format24bppRgb; case GFL_BITMAP_TYPE.GFL_ABGR: return PixelFormat.Format32bppArgb; case GFL_BITMAP_TYPE.GFL_BGRA: return PixelFormat.Format32bppArgb; case GFL_BITMAP_TYPE.GFL_ARGB: return PixelFormat.Format32bppArgb; case GFL_BITMAP_TYPE.GFL_CMYK: return PixelFormat.Undefined; default: throw new APIException("BITMAP_TYPE unknown"); } }
internal static extern IntPtr gflAllockBitmap(GFL_BITMAP_TYPE bitmap_type, Int32 width, Int32 height, UInt32 line_padding, ref GFL_COLOR color);
public GflImage(int width, int height, UInt32 stride, GFL_BITMAP_TYPE type) { GFL_COLOR c = new GFL_COLOR(Color.White) ; m_gfl_bitmap = GflAPI.gflAllockBitmap(type, width, height, stride, ref c); RefreshStruct(); }
public GflImage GetCopy(GFL_MODE depthMode, GFL_BITMAP_TYPE type) { var img = new GflImage(m_gfl_bitmap_struct.Width, m_gfl_bitmap_struct.Height, 1, type); GflAPI.gflChangeColorDepth(m_gfl_bitmap, img.m_gfl_bitmap, depthMode, GFL_MODE_PARAM.GFL_MODE_ADAPTIVE); img.RefreshStruct(); return img; }