Zum Hauptinhalt springen
Diese Methode ist für Linux und macOS nicht implementiert.
Diese Methode setzt die Trainingsbilddaten aus einem Puffer im Arbeitsspeicher. Das Bild sollte isotrop sein (das heißt, seine horizontale Auflösung sollte der vertikalen entsprechen) und als Schwarzweißbild mit 1 Bit pro Pixel codiert sein. Das Bild wird fortlaufend zeilenweise von oben nach unten im Puffer gespeichert. Eine Zeile eines Schwarzweißbilds wird als Folge von mindestens N = ceil ( width / 8 ) Bytes gespeichert. Jedes Byte codiert die Farben von 8 benachbarten Pixeln, wobei das höchstwertige Bit des ersten Bytes dem Pixel ganz links in der Zeile entspricht. Der Bitwert 0 steht für ein weißes Pixel, der Wert 1 für ein schwarzes Pixel. Wenn width kein Vielfaches von 8 ist, werden die niedrigstwertigen Bits des N-ten Bytes ignoriert.

Syntax

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

Parameter

Height [in] Gibt die Höhe des Trainingsbildes in Pixeln an. Width [in] Gibt die Breite des Trainingsbildes in Pixeln an. RawDataPointer [in] Dieser Parameter wird als Handle für einen Speicherpuffer mit Bilddaten behandelt. Das Handle wird als __int64 übergeben.

Rückgabewerte

Für Windows: Diese Methode hat keine spezifischen Rückgabewerte. Sie gibt die Standardrückgabewerte der Funktionen von ABBYY FineReader Engine zurück. Für Linux und macOS: Diese Methode gibt E_NOTIMPL zurück.

Hinweise

Die Bilddaten sollten vorhanden bleiben, solange das entsprechende TrainingImage-Objekt existiert.

Beispiele

// Das Format der Bitmap sollte dem in FineReader Engine entsprechen.
// Wenn ein Bild in einem anderen Format vorliegt, können Sie die Methode `Image.GetBitmap` verwenden.
// 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());

Siehe auch

TrainingImage