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

# AddImageFileFromStream Method of the FRDocument Object

This method opens an image file from the input stream implemented by the user, and adds the pages corresponding to the opened file to the document.

In Windows, this method differs from the [AddImageFileFromMemory](/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagefilefrommemory-method) method in that it can be used when the Engine object is created using the [OutprocLoader](/fine-reader/engine/api-reference/engine-loaders/outprocloader) object.

## Syntax

### C++

```cpp theme={null}
HRESULT AddImageFileFromStream(
  IReadStream*            Stream,
  IImagePasswordCallback* Callback,
  IPrepareImageMode*      PrepareMode,
  IIntsCollection*        PageIndices,
  BSTR                    FileName
);
```

### C\#

```csharp theme={null}
void AddImageFileFromStream(
  IReadStream             Stream,
  IImagePasswordCallback  Callback,
  IPrepareImageMode       PrepareMode,
  IIntsCollection         PageIndices,
  string                  FileName
);
```

### Visual Basic .NET

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

## Parameters

Stream

\[in] Refers to the interface of the user-implemented object of the type [IReadStream](/fine-reader/engine/api-reference/supplementary-objects-and-methods/ireadstream) which contains the image file to be added to the document.

Callback

\[in] This variable refers to the interface of the user-implemented object of the type [ImagePasswordCallback](/fine-reader/engine/api-reference/image-related-objects/iimagepasswordcallback) which is used to handle possible password requests for accessing images in PDF format. This parameter is optional and may be 0, in which case password-protected files cannot be processed.

PrepareMode

\[in] Refers to the [PrepareImageMode](/fine-reader/engine/api-reference/image-related-objects/prepareimagemode) object which specifies how an image will be preprocessed during opening. This parameter is optional and may be 0, in which case either the default parameters are used, or, if a [profile](/fine-reader/engine/guided-tour/advanced-techniques/working-with-profiles) has been loaded, the parameters set by this profile are used.

PageIndices

\[in] This parameter refers to the [IntsCollection](/fine-reader/engine/api-reference/supplementary-objects-and-methods/intscollection) object which specifies the indices of the pages which have to be added to the document. Note that repeated indices are not allowed. To add the same page several times, please call this method several times.<br />This parameter is optional and may be 0, in which case all the pages of the opened file will be added to the document.

FileName

\[in] Specifies the name of the image file. This information is used to define the format of the file, if not explicitly specified, and in error messages. This parameter is optional and may be 0.

In Windows and Linux: For opening the office formats, pass the name of the document with its extension.

## Return values

This method has no specific return values. It returns the [standard return values of ABBYY FineReader Engine functions](/fine-reader/engine/api-reference/return-codes).

## Remarks

* Files in SVG format cannot be opened from stream.
* When opening a PDF Portfolio file using this method, its cover is always included in the output file.
* This method may report events to the listeners attached to the IConnectionPointContainer interface of the [FRDocument](/fine-reader/engine/api-reference/document-related-objects/frdocument) object.
* For Linux and Windows:
  * If your license includes the [Office Formats Opening](/fine-reader/engine/licensing/modules#officeformatsopening) module, you may also use this method to open digital documents of [supported formats](/fine-reader/engine/specifications/supported-digital-document-input-formats).
  * Depending on the value of the [IEngine::MultiProcessingParams](/fine-reader/engine/api-reference/engine-object-iengine-interface/properties#multiprocessingparams) property, ABBYY FineReader Engine can distribute opening of multi-page documents to CPU cores.
* For Linux: This method does not work if the Engine object is loaded as an out-of-process server.
* For Windows: This method does not support WIC-compatible files opening.

## See also

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