> ## 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.

# FRDocument オブジェクトの AddImageFileFromMemory メソッド

> ABBYY FineReader Engine API の FRDocument オブジェクトの AddImageFileFromMemory メソッド — グローバルメモリ（ユーザーが事前にロードしたもの）から画像ファイルを開き、開いたファイルに対応するページをドキュメントに追加します。

このメソッドは、ユーザーが事前に読み込んでおいたグローバルメモリ内の画像ファイルを開き、そのファイルに対応するページをドキュメントに追加します。

<div id="syntax">
  ## 構文
</div>

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

Linux と 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">
  ## パラメーター
</div>

DataPtr

\[in] Linux: 画像ファイルを含むメモリブロックのアドレスを指定します。

DataSize

\[in] Linux: メモリに読み込まれた画像のサイズを指定します。

HGlobal

\[in] macOS および Windows: 画像ファイルを含むメモリブロックの HGLOBAL ハンドルを指定します。ハンドルは [\_\_int64](/ja/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties) として渡されます。このハンドルは有効である必要があります。

Callback

\[in] この変数は、ユーザー実装の [ImagePasswordCallback](/ja/fine-reader/engine/api-reference/image-related-objects/iimagepasswordcallback) 型オブジェクトのインターフェイスを参照します。これは、PDF 形式の画像へのアクセス時に発生する可能性があるパスワード要求を処理するために使用されます。このパラメーターは省略可能で、0 を指定できます。この場合、パスワードで保護されたファイルは処理できません。

PrepareMode

\[in] 画像を開くときの前処理方法を指定する [PrepareImageMode](/ja/fine-reader/engine/api-reference/image-related-objects/prepareimagemode) オブジェクトを参照します。このパラメーターは省略可能で、0 を指定できます。この場合、既定のパラメーターが使用されるか、[プロファイル](/ja/fine-reader/engine/guided-tour/advanced-techniques/working-with-profiles) が読み込まれている場合は、そのプロファイルで設定されたパラメーターが使用されます。

PageIndices

\[in] このパラメーターは、ドキュメントに追加するページのインデックスを指定する [IntsCollection](/ja/fine-reader/engine/api-reference/supplementary-objects-and-methods/intscollection) オブジェクトを参照します。インデックスの重複は許可されないことに注意してください。同じページを複数回追加するには、このメソッドを複数回呼び出してください。<br />このパラメーターは省略可能で、0 を指定できます。この場合、開いたファイルのすべてのページがドキュメントに追加されます。

FileName

\[in] 画像ファイル名を指定します。この情報は、ファイル形式が明示的に指定されていない場合にその判別のため、およびエラーメッセージで使用されます。このパラメーターは省略可能で、0 を指定できます。

office 形式を開くには (Linux と Windows のみ) 、拡張子を含むドキュメント名を渡します。

<div id="return-values">
  ## 戻り値
</div>

このメソッド固有の戻り値はありません。[ABBYY FineReader Engine 関数の標準戻り値](/ja/fine-reader/engine/api-reference/return-codes)が返されます。

<div id="remarks">
  ## 備考
</div>

* SVG 形式のファイルはメモリから開けません。

* このメソッドを使用して PDF Portfolio ファイルを開くと、その表紙は常に出力ファイルに含まれます。

* このメソッドは、[FRDocument](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument) オブジェクトの IConnectionPointContainer インターフェイスに接続されているリスナーに対してイベントを通知することがあります。

* Linux および Windows の場合:
  * ライセンスに [Office Formats Opening](/ja/fine-reader/engine/licensing/modules#officeformatsopening) モジュールが含まれている場合、このメソッドを使用して[サポートされている形式](/ja/fine-reader/engine/specifications/supported-digital-document-input-formats)のデジタル文書を開くこともできます。
  * Linux で Engine がプロセス外サーバーとして読み込まれている場合、または Windows で [OutprocLoader](/ja/fine-reader/engine/api-reference/engine-loaders/outprocloader) オブジェクトを使用してオブジェクトが作成されている場合、このメソッドは動作しません。この場合は、[AddImageFileFromStream](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagefilefromstream-method) (Win) メソッドの使用を検討してください。
  * [IEngine::MultiProcessingParams](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface/properties#multiprocessingparams) プロパティの値によっては、ABBYY FineReader Engine は複数ページの文書を開く処理を CPU コアに分散できます。

* Windows では、このメソッドは WIC 互換ファイルを開くことをサポートしていません。

<div id="samples">
  ## サンプル
</div>

<Accordion title="C# コード">
  ```csharp theme={null}
  // このサンプルでは、画像ファイルをメモリに読み込み、
  // その後 FineReader Engine に処理対象として追加する方法を示します
  ...
  // このコードサンプルでは、メモリ上のファイルを操作するために System.IO 名前空間を使用します
  using System.IO;
  // また、メモリ上のブロックを扱うために System.Runtime.InteropServices 名前空間を使用します
  using System.Runtime.InteropServices;
  ...
  // Engine object はすでに作成済みであるものとします
  // ドキュメントを作成します
  FREngine.IFRDocument document = engine.CreateFRDocument();
  // 入力画像
  string imagePath = "D:\\Demo.tif";
  FileInfo file = new FileInfo(imagePath);
  // 入力画像のサイズ
  long len = file.Length;
  // 画像を開きます
  BinaryReader br = new BinaryReader(File.Open(imagePath, FileMode.Open));
  // 現在のストリームから指定したバイト数をバイト配列に読み込みます
  byte[] byteArray = br.ReadBytes((int)len);
  // メモリ ブロックを割り当てます
  IntPtr handle = Marshal.AllocHGlobal((int)len);
  // アンマネージ メモリ ポインターからマネージドの 32 ビット符号付き整数配列にデータをコピーします
  Marshal.Copy(byteArray, 0, handle, (int)len);
  // メモリからドキュメントに画像を追加します
  document.AddImageFileFromMemory((Int64)handle, null, null, null, "Demo.tif");
  // プロセスのアンマネージ メモリから先ほど割り当てたメモリを解放します
  Marshal.FreeHGlobal(handle);
  // ドキュメントを認識します
  document.Process(null);
  ```
</Accordion>

<div id="see-also">
  ## 関連項目
</div>

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