Vai al contenuto principale
Questo metodo non è implementato per Linux e macOS
Questo metodo imposta i dati dell’immagine di training a partire dal buffer in memoria. L’immagine deve essere isotropa (cioè la risoluzione orizzontale deve essere uguale a quella verticale), in bianco e nero con codifica a 1 bit per pixel. L’immagine viene memorizzata nel buffer in modo continuo, riga per riga, dall’alto verso il basso. Una riga di un’immagine in bianco e nero viene memorizzata come una sequenza di almeno N = ceil ( width / 8 ) byte. Ogni byte codifica i colori di 8 pixel adiacenti; il bit più significativo del primo byte corrisponde al pixel più a sinistra della riga. Il valore del bit pari a 0 indica un pixel bianco, mentre il valore pari a 1 indica un pixel nero. Se width non è un multiplo di 8, i bit meno significativi dell’N-esimo byte vengono ignorati.

Sintassi

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 _
)

Parametri

Height [in] Specifica l’altezza dell’immagine di training in pixel. Width [in] Specifica la larghezza dell’immagine di training in pixel. RawDataPointer [in] Questo parametro è considerato un handle di un buffer di memoria contenente i dati dell’immagine. L’handle viene passato come __int64.

Valori di ritorno

Per Windows: questo metodo non prevede valori di ritorno specifici. Restituisce i valori di ritorno standard delle funzioni di ABBYY FineReader Engine. Per Linux e macOS: questo metodo restituisce E_NOTIMPL.

Note

I dati dell’immagine devono essere presenti finché esiste il corrispondente oggetto TrainingImage.

Esempi

// Il formato della bitmap deve essere lo stesso usato in FineReader Engine.
// Se un'immagine è in un altro formato, puoi usare il metodo 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());

Vedi anche

TrainingImage