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

# Image-Related Objects Compatibility with Version 10

> Image-related object API compatibility changes between ABBYY FineReader Engine 12 and 10 — ImageDocument, PrepareImageMode, and related updates.

This section describes all changes to image-related objects which may require changes in the source code of your applications.

<table><thead><tr><th><p><strong>Object/Enumeration</strong></p></th><th><p><strong>Property/Method/Constant</strong></p></th><th><p><strong>What has happened?</strong></p></th><th><p><strong>Comment</strong></p></th></tr></thead><tbody><tr><td rowspan="2"><p><strong><a href="/fine-reader/engine/api-reference/image-related-objects/image">Image</a></strong></p></td><td><p><strong>ImageDocument</strong></p></td><td><p>Removed</p></td><td><p>The property is no longer supported. You can obtain the <strong>Image</strong> object only via the parent <strong><a href="/fine-reader/engine/api-reference/image-related-objects/imagedocument">ImageDocument</a></strong> object, if necessary you can store the reference to the parent object by yourself.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/api-reference/image-related-objects/image/writetofile-method">WriteToFile</a></strong></p></td><td><p>The method does not support saving to PDF.</p></td><td><p>To save an image to PDF format, use the following procedure:</p><ol><li value="1">Create the <strong><a href="/fine-reader/engine/api-reference/parameter-objects/export-parameters/pdfexportparams">PDFExportParams</a></strong> object using the <strong>IEngine::CreatePDFExportParams</strong> method.</li><li value="2">Set its <strong><a href="/fine-reader/engine/api-reference/parameter-objects/export-parameters/pdfexportparams#textexportmode">TextExportMode</a></strong> property to <a href="/fine-reader/engine/api-reference/enumerations/pdfexportmodeenum#imageonly">PEM\_ImageOnly</a>.</li><li value="3">Use these parameters during export to PDF format (e.g., using the <strong><a href="/fine-reader/engine/api-reference/document-related-objects/frdocument/export-method">IFRDocument::Export</a></strong> method).</li></ol></td></tr><tr><td /><td><p><strong>GetPicture</strong></p><Note>Windows</Note></td><td><p>Renamed</p></td><td><p>The new name of the method is <strong><a href="/fine-reader/engine/api-reference/image-related-objects/image/getbitmap-method">GetBitmap</a></strong>, which underlines that the method returns <a href="/fine-reader/engine/api-reference/enumerations/bitmapbitsformatenum">bitmap data</a>. The parameters of the method have been changed:</p><ul><li>This method does not receive as an input parameter the flags for the image color conversion. To obtain a gray bitmap of an image, you can work with the gray image plane of <strong>ImageDocument</strong> (<strong><a href="/fine-reader/engine/api-reference/image-related-objects/imagedocument#grayimage">IImageDocument::GrayImage</a></strong>) and call <strong>GetBitmap</strong> method for it.</li><li>The handle to the output bitmap is returned as the <strong><a href="/fine-reader/engine/api-reference/supplementary-objects-and-methods/handle">Handle</a></strong> object. This object manages memory allocation and allows you to avoid memory leaks while working with resources in memory. It also provides a method for conversion to <strong><a href="/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties">\_\_int64</a></strong>.</li><li>The format of the output bitmap has been changed. It now conforms to HBITMAP standard and is the same as input bitmap data for other FineReader Engine methods.</li></ul></td></tr><tr><td><br /></td><td><p><strong><a href="/fine-reader/engine/api-reference/image-related-objects/image/estimatebitmapsize-method">EstimateBitmapSize</a></strong></p><Note>Windows</Note></td><td><p>Input parameters number changed</p></td><td><p>This method does not receive as an input parameter the flags for the image color conversion.</p><p>This method estimates the size of memory that is to be allocated for the bitmap returned from the <strong><a href="/fine-reader/engine/api-reference/image-related-objects/image/getbitmap-method">GetBitmap</a></strong> method called with the same parameters. Thus, its input parameters are analogous to those of <strong>GetBitmap</strong>.</p></td></tr><tr><td rowspan="7"><p><strong><a href="/fine-reader/engine/api-reference/image-related-objects/imagedocument">ImageDocument</a></strong></p></td><td><p><strong>ConvertCoordinates</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong><a href="/fine-reader/engine/api-reference/image-related-objects/coordinatesconverter/convertcoordinates-method">ConvertCoordinates</a></strong> method of the <strong><a href="/fine-reader/engine/api-reference/image-related-objects/coordinatesconverter">CoordinatesConverter</a></strong> object. This method works in the same way as the old one, but the new object is more flexible, allowing you to store the information about image modification state separately. Please notice that this method takes into account all the modifications of the image.</p></td></tr><tr><td><p><strong>DescreenImage</strong></p></td><td><p>Renamed</p></td><td><p>The new name of this method is <strong><a href="/fine-reader/engine/api-reference/image-related-objects/imagedocument/smoothtexture-method">SmoothTexture</a></strong>. This name reflects the purpose of the method better than the old one.</p></td></tr><tr><td><p><strong>EvenBrightness</strong></p></td><td><p>Renamed, input parameters number changed</p></td><td><p>The new name of this method is <strong><a href="/fine-reader/engine/api-reference/image-related-objects/imagedocument/equalizebrightness-method">EqualizeBrightness</a></strong>. This name reflects the purpose of the method better than the old one.</p><p>The method takes as an input parameter a Boolean value which specifies whether the background of the image is white. This additional information can help produce a clear, high-contrast image.</p></td></tr><tr><td><p><strong>RemoveCameraBlur</strong></p></td><td><p>Renamed</p></td><td><p>The new name of this method is <strong><a href="/fine-reader/engine/api-reference/image-related-objects/imagedocument/removemotionblur-method">RemoveMotionBlur</a></strong>. This name reflects the purpose of the method better than the old one.</p></td></tr><tr><td><p><strong>SubtractColor</strong></p></td><td><p>Removed</p></td><td><p>Instead use the <strong><a href="/fine-reader/engine/api-reference/image-related-objects/imagedocument/removecolorobjectsex-method">RemoveColorObjectsEx</a></strong> method, which allows you to remove objects of several specified hues at once, and also receive the image of removed objects.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/api-reference/image-related-objects/imagedocument/removegarbage-method">RemoveGarbage</a></strong></p></td><td><p>Behavior changed</p></td><td><p>This method still searches for garbage on the black-and-white plane, but removes it from all color planes of the image.</p></td></tr><tr><td><p><strong>RemoveCameraNoise</strong></p></td><td><p>Removed</p></td><td><p>The method is no longer in use. Use the <strong><a href="/fine-reader/engine/api-reference/image-related-objects/imagedocument/removenoise-method">IImageDocument::RemoveNoise</a></strong> method instead. The new method can remove not only ISO noise, but also strongly correlated noise that can appear on overcompressed JPEG images.</p></td></tr><tr><td><p><strong>GetPictureFlags</strong></p></td><td><br /></td><td><p>Removed</p></td><td><p>This enumeration is no longer in use. The methods that used these flags do not perform the color conversions now.</p></td></tr><tr><td><p><strong>ImageDocumentsCollection</strong></p></td><td><br /></td><td><p>Removed</p></td><td><p>The object is no longer in use. The methods that used this object have been changed or removed. See details for the methods that used this object.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/api-reference/enumerations/imagetypeenum">ImageTypeEnum</a></strong></p></td><td><p>IT\_Deskewed</p></td><td><p>Renamed</p></td><td><p>The new name of the constant is IT\_Modified. The constant is used to denote any modified image, not only a deskewed image.</p></td></tr><tr><td><p><strong>PdfExtendedParams</strong></p></td><td><br /></td><td><p>Removed</p></td><td><p>The object is no longer in use. To save an image to PDF format, use the export methods with appropriate parameters (<a href="/fine-reader/engine/api-reference/enumerations/pdfexportmodeenum#imageonly">PDFExportModeEnum::PEM\_ImageOnly</a>).</p></td></tr><tr><td><p><strong>MemoryImageFormatEnum</strong></p></td><td><br /></td><td><p>Removed</p></td><td><p>Use <strong><a href="/fine-reader/engine/api-reference/enumerations/bitmapbitsformatenum">BitmapBitsFormatEnum</a></strong> instead.<strong> </strong>The format interpretation has been changed.</p><p>For <strong>Windows</strong>: Now memory image format is the same for input of methods consuming bitmap data (such as <strong><a href="/fine-reader/engine/api-reference/engine-object-iengine-interface/processing-methods/openbitmapbits-method">OpenBitmapBits</a></strong> method of the <strong><a href="/fine-reader/engine/api-reference/engine-object-iengine-interface">Engine</a></strong> object) and for output of other methods, for example, the <strong><a href="/fine-reader/engine/api-reference/image-related-objects/image/getbitmap-method">GetBitmap</a></strong> method of the <strong><a href="/fine-reader/engine/api-reference/image-related-objects/image">Image</a></strong> object. So you do not need to convert from one interpretation to another.</p></td></tr><tr><td rowspan="3"><p><strong><a href="/fine-reader/engine/api-reference/image-related-objects/prepareimagemode">PrepareImageMode</a></strong></p></td><td><p><strong>CorrectSkewMode</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong><a href="/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/pagepreprocessingparams#correctskew">CorrectSkew</a></strong> property of the <strong><a href="/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/pagepreprocessingparams">PagePreprocessingParams</a></strong> object instead.</p></td></tr><tr><td><p><strong>CorrectSkewByBlackSquaresHorizontally</strong></p><p><strong>CorrectSkewByBlackSquaresVertically</strong></p><p><strong>CorrectSkewByHorizontalLines</strong></p><p><strong>CorrectSkewByHorizontalText</strong></p><p><strong>CorrectSkewByVerticalLines</strong></p><p><strong>CorrectSkewByVerticalText</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong><a href="/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/pagepreprocessingparams#correctskew">CorrectSkew</a></strong> property of the <strong><a href="/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/pagepreprocessingparams">PagePreprocessingParams</a></strong> object instead.</p></td></tr><tr><td><p><strong>ImageCompression</strong></p></td><td><p>Renamed, type changed</p></td><td><p>This property is now called <strong><a href="/fine-reader/engine/api-reference/image-related-objects/prepareimagemode#compressimage">CompressImage</a></strong> and is of the <strong><a href="/fine-reader/engine/api-reference/enumerations/threestatepropertyvalueenum">ThreeStatePropertyValueEnum</a></strong> type. The default functions as before.</p></td></tr><tr><td><p><strong>ImageCompressionEnum</strong></p></td><td><br /></td><td><p>Removed</p></td><td><p>The property which used this enumeration now has another type.</p></td></tr><tr><td rowspan="2"><p><strong><a href="/fine-reader/engine/api-reference/image-related-objects/trainingimage">TrainingImage</a></strong></p></td><td><p><strong>Height</strong></p><p><strong>Width</strong></p></td><td><p>Removed</p></td><td><p>Specify width and height of the training image using the <strong><a href="/fine-reader/engine/api-reference/image-related-objects/trainingimage/setbitmapbits-method">ITrainingImage::SetBitmapBits</a></strong> method.</p></td></tr><tr><td><p><strong>SetImageData</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong><a href="/fine-reader/engine/api-reference/image-related-objects/trainingimage/setbitmapbits-method">ITrainingImage::SetBitmapBits</a></strong> method instead. This method differs from the old one in the following aspects:</p><ul><li>The pointer to a memory buffer containing image data is passed as <strong><a href="/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties">\_\_int64</a></strong>. This change has been made for 64-bit operating systems support.</li><li>The width and height of the training image are passed as parameters.</li></ul><p>You can also use the new <strong><a href="/fine-reader/engine/api-reference/image-related-objects/trainingimage/setimagedata-method">ITrainingImage::SetImageData</a></strong> method that allows you to load a training image from an existing image document.</p></td></tr><tr><td rowspan="2"><p><strong><a href="/fine-reader/engine/api-reference/image-related-objects/trainingimagescollection">TrainingImagesCollection</a></strong></p></td><td><p><strong>Insert</strong></p><p><strong>Remove</strong></p><p><strong>RemoveAll</strong></p></td><td><p>Renamed</p></td><td><p>The new names of the methods are <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/insertat-method">InsertAt</a></strong>, <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/deleteat-method">DeleteAt</a></strong>, <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/deleteall-method">DeleteAll</a></strong>. Methods of all collections have been renamed to be uniform.</p></td></tr><tr><td><p><strong>CopyFrom</strong></p></td><td><p>Removed</p></td><td><p>The method is no longer supported. To create a copy of the collection, you can create a new collection using the <strong><a href="/fine-reader/engine/api-reference/engine-object-iengine-interface/creation-methods/createlessobjectgreater-methods">IEngine::CreateTrainingImagesCollection</a></strong> method and add the same elements to it using the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/add-method">Add</a></strong> method.</p></td></tr></tbody></table>
