Class BitmapHelper
Inheritance
System.Object
BitmapHelper
Assembly: IronOcr.dll
Syntax
public static class BitmapHelper : Object
Reach for BitmapHelper when low-level OCR code has to convert pixel formats or touch a bitmap's raw bytes before handing the image to Tesseract. It is a static utility in the DynamicTesseract interop layer that sits under IronOCR's higher-level reading API, so most projects never call it directly. Code that drives the native engine itself, or that pre-processes image data for a custom scan path, is where it earns its place.
The class works on an AnyBitmap and on raw byte and pixel pointers, so it belongs to the stage that prepares image data, before the engine reads it. A typical caller has already decoded an image and now needs it in the packed RGBA layout the native pipeline expects, or needs to read and write individual samples in a buffer. BitmapHelper supplies the format conversions and the indexed accessors for that work without forcing a full re-decode of the image.
The members fall into three functional groups. The pixel-format converters, ConvertArgb1555ToRGBA, ConvertRgb555ToRGBA, and ConvertRgb565ToRGBA, promote a single packed 16-bit sample to 32-bit RGBA, and EncodeAsRGBA packs four Byte channels back into one UInt32. The typed buffer readers, GetDataBit, GetDataByte, GetDataQBit, GetDataUInt16, and GetDataUInt32, read a sample at an index from a pointer, and the matching SetDataBit, SetDataByte, SetDataQBit, SetDataUInt16, and SetDataUInt32 write one back. GetBPP reports the bits per pixel of an AnyBitmap, which tells you which converter and accessor width to use. Because the accessors take raw pointers, call them from an unsafe context and respect the buffer bounds yourself.
int bpp = BitmapHelper.GetBPP(bitmap);
uint rgba = BitmapHelper.EncodeAsRGBA(r, g, b, a);
For everyday reading, prefer the high-level API: the color correction how-to and the image quality how-to tune the image, and the advanced reading configuration how-to covers deeper engine control.
Methods
ConvertArgb1555ToRGBA(UInt32)
Declaration
public static uint ConvertArgb1555ToRGBA(uint val)
Parameters
| Type |
Name |
Description |
| System.UInt32 |
val |
|
Returns
| Type |
Description |
| System.UInt32 |
|
ConvertRgb555ToRGBA(UInt32)
Declaration
public static uint ConvertRgb555ToRGBA(uint val)
Parameters
| Type |
Name |
Description |
| System.UInt32 |
val |
|
Returns
| Type |
Description |
| System.UInt32 |
|
ConvertRgb565ToRGBA(UInt32)
Declaration
public static uint ConvertRgb565ToRGBA(uint val)
Parameters
| Type |
Name |
Description |
| System.UInt32 |
val |
|
Returns
| Type |
Description |
| System.UInt32 |
|
EncodeAsRGBA(Byte, Byte, Byte, Byte)
Declaration
public static uint EncodeAsRGBA(byte red, byte green, byte blue, byte alpha)
Parameters
| Type |
Name |
Description |
| System.Byte |
red |
|
| System.Byte |
green |
|
| System.Byte |
blue |
|
| System.Byte |
alpha |
|
Returns
| Type |
Description |
| System.UInt32 |
|
GetBPP(AnyBitmap)
Declaration
public static int GetBPP(AnyBitmap bitmap)
Parameters
| Type |
Name |
Description |
| IronSoftware.Drawing.AnyBitmap |
bitmap |
|
Returns
| Type |
Description |
| System.Int32 |
|
GetDataBit(Byte*, Int32)
Declaration
public static byte GetDataBit(byte *data, int index)
Parameters
| Type |
Name |
Description |
| System.Byte* |
data |
|
| System.Int32 |
index |
|
Returns
| Type |
Description |
| System.Byte |
|
GetDataByte(Byte*, Int32)
Declaration
public static byte GetDataByte(byte *data, int index)
Parameters
| Type |
Name |
Description |
| System.Byte* |
data |
|
| System.Int32 |
index |
|
Returns
| Type |
Description |
| System.Byte |
|
GetDataQBit(Byte*, Int32)
Declaration
public static byte GetDataQBit(byte *data, int index)
Parameters
| Type |
Name |
Description |
| System.Byte* |
data |
|
| System.Int32 |
index |
|
Returns
| Type |
Description |
| System.Byte |
|
GetDataUInt16(UInt16*, Int32)
Declaration
public static ushort GetDataUInt16(ushort *data, int index)
Parameters
| Type |
Name |
Description |
| System.UInt16* |
data |
|
| System.Int32 |
index |
|
Returns
| Type |
Description |
| System.UInt16 |
|
GetDataUInt32(UInt32*, Int32)
Declaration
public static uint GetDataUInt32(uint *data, int index)
Parameters
| Type |
Name |
Description |
| System.UInt32* |
data |
|
| System.Int32 |
index |
|
Returns
| Type |
Description |
| System.UInt32 |
|
SetDataBit(Byte*, Int32, Byte)
Declaration
public static void SetDataBit(byte *data, int index, byte value)
Parameters
| Type |
Name |
Description |
| System.Byte* |
data |
|
| System.Int32 |
index |
|
| System.Byte |
value |
|
SetDataByte(Byte*, Int32, Byte)
Declaration
public static void SetDataByte(byte *data, int index, byte value)
Parameters
| Type |
Name |
Description |
| System.Byte* |
data |
|
| System.Int32 |
index |
|
| System.Byte |
value |
|
SetDataQBit(Byte*, Int32, Byte)
Declaration
public static void SetDataQBit(byte *data, int index, byte value)
Parameters
| Type |
Name |
Description |
| System.Byte* |
data |
|
| System.Int32 |
index |
|
| System.Byte |
value |
|
SetDataUInt16(UInt16*, Int32, UInt16)
Declaration
public static void SetDataUInt16(ushort *data, int index, ushort value)
Parameters
| Type |
Name |
Description |
| System.UInt16* |
data |
|
| System.Int32 |
index |
|
| System.UInt16 |
value |
|
SetDataUInt32(UInt32*, Int32, UInt32)
Declaration
public static void SetDataUInt32(uint *data, int index, uint value)
Parameters
| Type |
Name |
Description |
| System.UInt32* |
data |
|
| System.Int32 |
index |
|
| System.UInt32 |
value |
|