Passer au contenu principal
Cette méthode n’est pas implémentée pour Linux et macOS
Cette méthode définit les données de l’image d’entraînement à partir de la mémoire tampon. L’image doit être isotrope (c’est-à-dire que sa résolution horizontale doit être égale à sa résolution verticale), en noir et blanc, avec un codage de 1 bit par pixel. L’image est stockée dans la mémoire tampon de manière continue, ligne par ligne, de haut en bas. Une ligne d’image en noir et blanc est stockée sous la forme d’une séquence d’au moins N = ceil ( width / 8 ) octets. Chaque octet représente les couleurs de 8 pixels adjacents ; le bit de poids fort du premier octet correspond au pixel le plus à gauche de la ligne. Une valeur de bit de 0 désigne un pixel blanc, une valeur de 1 désigne un pixel noir. Si width n’est pas un multiple de 8, les bits de poids faible du N-ième octet sont ignorés.

Syntaxe

C++

HRESULT SetBitmapBits(
  int     Height,
  int     Width,
  __int64 RawDataPointer
);

C#

void SetBitmapBits(
  int   Height,
  int   Width,
  Int64 RawDataPointer
);

Visual Basic .NET

Sub SetBitmapBits( _
  Height As Integer, _
  Width As Integer, _
  RawDataPointer As Int64 _
)

Paramètres

Height [in] Spécifie la hauteur de l’image d’entraînement, en pixels. Width [in] Spécifie la largeur de l’image d’entraînement, en pixels. RawDataPointer [in] Ce paramètre est traité comme un handle de tampon mémoire contenant les données de l’image. Le handle est transmis sous la forme de __int64.

Valeurs de retour

Pour Windows : cette méthode n’a pas de valeurs de retour spécifiques. Elle renvoie les valeurs de retour standard des fonctions ABBYY FineReader Engine. Pour Linux et macOS : cette méthode renvoie E_NOTIMPL.

Remarques

Les données de l’image doivent rester disponibles tant que l’objet TrainingImage correspondant existe.

Exemples

// Le format du bitmap doit être identique à celui de FineReader Engine.
// Si une image est dans un format différent, vous pouvez utiliser la méthode Image.GetBitmap.
// IntPtr hBitmap = document.Pages[0].ImageDocument.BlackWhiteImage.GetBitmap(null).Handle;
// Bitmap bitmap = new Bitmap( Image.FromHbitmap( hBitmap ) );
Bitmap bitmap = new Bitmap(imagePath);
Rectangle imageRect = new Rectangle(0, 0, bitmap.Size.Width, bitmap.Size.Height);
System.Drawing.Imaging.BitmapData data = bitmap.LockBits(imageRect, System.Drawing.Imaging.ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format1bppIndexed);
FREngine.ITrainingImage trainingImage = engineLoader.Engine.CreateTrainingImage();
trainingImage.SetBitmapBits(bitmap.Size.Height, bitmap.Size.Width, data.Scan0.ToInt64());

Voir aussi

TrainingImage