> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Methode AddImageFileFromMemory des FRDocument-Objekts

> Methode AddImageFileFromMemory des FRDocument-Objekts in der ABBYY FineReader Engine API — Öffnet eine Bilddatei aus dem globalen Speicher (zuvor vom Benutzer geladen) und fügt ihre Seiten dem Dokument hinzu.

Diese Methode öffnet eine Bilddatei aus dem globalen Speicher, in den der Benutzer sie zuvor geladen hat, und fügt dem Dokument die Seiten der geöffneten Datei hinzu.

<div id="syntax">
  ## Syntax
</div>

<div id="c">
  ### C++
</div>

Linux und macOS

```cpp theme={null}
HRESULT  AddImageFileFromMemory(
  void*                   DataPtr,
  __int64                 DataSize,
  IImagePasswordCallback* Callback,
  IPrepareImageMode*      PrepareMode,
  IIntsCollection*        PageIndices,
  BSTR                    FileName
);
```

Windows

```cpp theme={null}
HRESULT  AddImageFileFromMemory(
  __int64                 HGlobal,
  IImagePasswordCallback* Callback,
  IPrepareImageMode*      PrepareMode,
  IIntsCollection*        PageIndices,
  BSTR                    FileName
);
```

### C\#

```csharp theme={null}
void AddImageFileFromMemory(
  Int64                  HGlobal,
  IImagePasswordCallback Callback,
  IPrepareImageMode       PrepareMode,
  IIntsCollection         PageIndices,
  string                 FileName
);
```

<div id="visual-basic-net">
  ### Visual Basic .NET
</div>

```vb theme={null}
Sub AddImageFileFromMemory( _
  HGlobal As Int64, _
  Callback As IImagePasswordCallback, _
  [PrepareMode As IPrepareImageMode = Nothing], _
  [PageIndices As IIntsCollection = Nothing], _
  [FileName As String = "0"] _
)
```

<div id="parameters">
  ## Parameter
</div>

DataPtr

\[in] Linux: Gibt die Adresse des Speicherblocks an, der die Bilddatei enthält.

DataSize

\[in] Linux: Gibt die Größe des in den Speicher geladenen Bildes an.

HGlobal

\[in] macOS und Windows: Gibt das HGLOBAL-Handle des Speicherblocks an, der die Bilddatei enthält. Das Handle wird als [\_\_int64](/de/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties) übergeben. Dieses Handle muss gültig sein.

Callback

\[in] Diese Variable verweist auf die Schnittstelle des benutzerimplementierten Objekts vom Typ [ImagePasswordCallback](/de/fine-reader/engine/api-reference/image-related-objects/iimagepasswordcallback), das zur Verarbeitung möglicher Kennwortabfragen für den Zugriff auf Bilder im PDF-Format verwendet wird. Dieser Parameter ist optional und kann 0 sein; in diesem Fall können kennwortgeschützte Dateien nicht verarbeitet werden.

PrepareMode

\[in] Verweist auf das Objekt [PrepareImageMode](/de/fine-reader/engine/api-reference/image-related-objects/prepareimagemode), das angibt, wie ein Bild beim Öffnen vorverarbeitet wird. Dieser Parameter ist optional und kann 0 sein; in diesem Fall werden entweder die Standardparameter verwendet oder, falls ein [Profil](/de/fine-reader/engine/guided-tour/advanced-techniques/working-with-profiles) geladen wurde, die in diesem Profil festgelegten Parameter.

PageIndices

\[in] Dieser Parameter verweist auf das Objekt [IntsCollection](/de/fine-reader/engine/api-reference/supplementary-objects-and-methods/intscollection), das die Indizes der Seiten angibt, die dem Dokument hinzugefügt werden sollen. Beachten Sie, dass doppelte Indizes nicht zulässig sind. Um dieselbe Seite mehrmals hinzuzufügen, rufen Sie diese Methode bitte mehrmals auf.<br />Dieser Parameter ist optional und kann 0 sein; in diesem Fall werden alle Seiten der geöffneten Datei dem Dokument hinzugefügt.

FileName

\[in] Gibt den Namen der Bilddatei an. Diese Information wird verwendet, um das Dateiformat zu bestimmen, falls es nicht ausdrücklich angegeben ist, sowie in Fehlermeldungen. Dieser Parameter ist optional und kann 0 sein.

Zum Öffnen von Office-Formaten (nur Linux und Windows) übergeben Sie den Namen des Dokuments mit seiner Erweiterung.

<div id="return-values">
  ## Rückgabewerte
</div>

Diese Methode hat keine spezifischen Rückgabewerte. Sie gibt die [Standard-Rückgabewerte von ABBYY FineReader Engine-Funktionen](/de/fine-reader/engine/api-reference/return-codes) zurück.

<div id="remarks">
  ## Hinweise
</div>

* Dateien im SVG-Format können nicht aus dem Speicher geöffnet werden.

* Wenn Sie eine PDF-Portfolio-Datei mit dieser Methode öffnen, wird ihr Deckblatt immer in die Ausgabedatei aufgenommen.

* Diese Methode kann Ereignisse an Listener melden, die mit der IConnectionPointContainer-Schnittstelle des Objekts [FRDocument](/de/fine-reader/engine/api-reference/document-related-objects/frdocument) verbunden sind.

* Für Linux und Windows:
  * Wenn Ihre Lizenz das Modul [Office Formats Opening](/de/fine-reader/engine/licensing/modules#officeformatsopening) umfasst, können Sie diese Methode auch verwenden, um digitale Dokumente in [unterstützten Formaten](/de/fine-reader/engine/specifications/supported-digital-document-input-formats) zu öffnen.
  * Diese Methode funktioniert nicht, wenn die Engine unter Linux als Out-of-Process-Server geladen wird oder wenn das Objekt unter Windows mit dem Objekt [OutprocLoader](/de/fine-reader/engine/api-reference/engine-loaders/outprocloader) erstellt wird. Verwenden Sie in diesem Fall die Methode [AddImageFileFromStream](/de/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagefilefromstream-method) (Win).
  * Je nach Wert der Eigenschaft [IEngine::MultiProcessingParams](/de/fine-reader/engine/api-reference/engine-object-iengine-interface/properties#multiprocessingparams) kann ABBYY FineReader Engine das Öffnen mehrseitiger Dokumente auf die CPU-Kerne verteilen.

* Unter Windows unterstützt diese Methode das Öffnen von WIC-kompatiblen Dateien nicht.

<div id="samples">
  ## Beispiele
</div>

<Accordion title="C#-Code">
  ```csharp theme={null}
  // Dieses Beispiel zeigt, wie eine Bilddatei in den Speicher geladen
  // und anschließend zur Verarbeitung an FineReader Engine übergeben werden kann
  ...
  // In diesem Codebeispiel verwenden wir den Namespace System.IO für die Arbeit mit einer Datei im Speicher
  using System.IO;
  // und den Namespace System.Runtime.InteropServices für die Arbeit mit Speicherblöcken
  using System.Runtime.InteropServices;
  ...
  // Wir gehen davon aus, dass das Engine-Objekt bereits erstellt wurde
  // Dokument erstellen
  FREngine.IFRDocument document = engine.CreateFRDocument();
  // Quellbild
  string imagePath = "D:\\Demo.tif";
  FileInfo file = new FileInfo(imagePath);
  // Größe des Quellbilds
  long len = file.Length;
  // Das Bild öffnen
  BinaryReader br = new BinaryReader(File.Open(imagePath, FileMode.Open));
  // Die angegebene Anzahl von Bytes aus dem aktuellen Stream in ein Byte-Array lesen
  byte[] byteArray = br.ReadBytes((int)len);
  // Einen Speicherblock zuweisen
  IntPtr handle = Marshal.AllocHGlobal((int)len);
  // Daten aus einem Zeiger auf nicht verwalteten Speicher in ein verwaltetes 32-Bit-Ganzzahl-Array mit Vorzeichen kopieren
  Marshal.Copy(byteArray, 0, handle, (int)len);
  // Bild aus dem Speicher zum Dokument hinzufügen
  document.AddImageFileFromMemory((Int64)handle, null, null, null, "Demo.tif");
  // Zuvor im nicht verwalteten Speicher des Prozesses reservierten Speicher freigeben
  Marshal.FreeHGlobal(handle);
  // Dokument verarbeiten
  document.Process(null);
  ```
</Accordion>

<div id="see-also">
  ## Siehe auch
</div>

[FRDocument](/de/fine-reader/engine/api-reference/document-related-objects/frdocument)
