ABBYY FineReader Engine traite les images en les chargeant dans un objet FRDocument, qui représente le document en cours de traitement.
Pour charger des images dans le document, effectuez l’une des opérations suivantes :
Toutes ces méthodes prennent en paramètre l’objet PrepareImageMode, qui vous permet de définir différents paramètres de prétraitement de l’image. Appelez la méthode IEngine::CreatePrepareImageMode pour créer cet objet, modifiez ses propriétés si nécessaire, puis transmettez-le à l’une des méthodes mentionnées ci-dessus.
Vous pouvez également ajouter un objet ImageDocument existant (par exemple, chargé à partir d’un fichier au format interne) à l’aide de la méthode AddImageDocument de l’objet FRDocument.
Structure de l’ImageDocument
Une fois chargée dans le document, l’image de chaque page est accessible via la propriété IFRPage::ImageDocument. Chaque image ouverte dans ABBYY FineReader Engine est représentée par un objet ImageDocument. L’ImageDocument stocke l’image dans ce que l’on appelle le « format interne », qui comprend 4 plans d’image, représentés par des objets Image :
- Plan noir et blanc. Il s’agit de la copie en noir et blanc de l’image source.
- Plan en niveaux de gris. Il s’agit de la copie en niveaux de gris de l’image source. Si l’image source était en noir et blanc, ce plan est identique au plan noir et blanc.
- Plan couleur. Il s’agit de la copie en couleur de l’image source. Si l’image source était en noir et blanc, ce plan est identique au plan noir et blanc ; si elle était en niveaux de gris, ce plan est identique au plan en niveaux de gris.
- Aperçu. Petite image en couleur utilisée pour afficher un aperçu dans l’interface utilisateur. L’aperçu est créé lors de l’appel de la méthode GetPreviewImage ou GetPreviewImageSpecificSize. Toute modification de l’image, automatique ou manuelle, peut réinitialiser l’aperçu créé, qui devra alors être recréé.
La taille et la résolution des images en noir et blanc, en niveaux de gris et en couleur sont identiques. L’image d’aperçu est généralement plus petite.
Les images peuvent être redressées lors de leur ouverture. Pour faire correspondre les coordonnées de l’image d’origine avec celles obtenues après l’ouverture ou après des modifications supplémentaires, utilisez l’objet CoordinatesConverter. Il stocke l’état des coordonnées au moment où il a été obtenu. Vous pouvez utiliser cet objet pour convertir les coordonnées des pixels entre deux étapes quelconques du traitement de l’image. Par exemple :
- Obtenez cet objet à l’aide de la propriété IImageDocument::CoordinatesConverter, juste après l’ouverture de l’image, au cours de laquelle l’inclinaison de l’image a été corrigée.
- Après d’autres modifications, obtenez une autre instance de cet objet à partir de l’ImageDocument.
- Vous pouvez maintenant convertir les coordonnées des pixels entre le plan d’image initialement redressé et le plan d’image modifié en appliquant deux fois la méthode ConvertCoordinates :
- Convertissez les coordonnées du plan d’image redressé vers l’image d’origine à l’aide de la première instance de CoordinatesConverter.
- Convertissez le résultat du plan de l’image d’origine vers le plan d’image modifié à l’aide de la deuxième instance de CoordinatesConverter.
La même méthode permet de convertir les coordonnées des pixels de l’un des plans d’image en taille réelle vers le plan d’image d’aperçu, et inversement. Les coordonnées des pixels sur les plans d’image noir et blanc, en niveaux de gris et couleur sont identiques.
Une modification de l’image, automatique ou manuelle, peut réinitialiser le plan d’image d’aperçu créé précédemment, et vous ne pourrez plus convertir les coordonnées vers ou depuis cet aperçu. Avant de convertir les coordonnées, appelez de nouveau la méthode GetPreviewImage si l’image a été modifiée.
Les mécanismes de prétraitement automatique sont les mieux adaptés pour préparer l’image à la reconnaissance optique de caractères (OCR). Le programme détermine l’origine de l’image et le type de document, détecte une orientation, une résolution ou une inclinaison incorrectes, puis tient compte de toutes ces informations pour améliorer l’image. Nous vous recommandons d’effectuer des modifications d’image supplémentaires uniquement si, après le prétraitement automatique, le résultat ne vous satisfait pas.
Les modifications appliquées lors de l’ouverture de l’image sont gérées par l’objet PrepareImageMode.
Après l’ouverture, l’image peut être modifiée à l’aide des éléments suivants :
Vous pouvez enregistrer le plan d’image actuel dans un fichier image au format spécifié à l’aide de la méthode WriteToFile de l’objet Image.
ABBYY FineReader Engine permet également d’enregistrer plusieurs images dans un seul fichier image. Pour enregistrer un fichier image multipage, utilisez l’objet MultipageImageWriter :
- Créez un objet MultipageImageWriter à l’aide de la méthode CreateMultipageImageWriter de l’objet Engine.
- Ajoutez des images à la fin du fichier image multipage à l’aide de la méthode AddPage de l’objet MultipageImageWriter. Chaque image est ajoutée en tant que page unique.
- Avant de pouvoir utiliser le fichier image nouvellement créé, toutes les références à l’objet MultipageImageWriter doivent être libérées.
Notez que, bien que l’objet ImageDocument fournisse un ensemble de méthodes d’enregistrement (SaveTo, SaveToFile, SaveToMemory), ces méthodes ne peuvent pas être utilisées pour enregistrer une image dans un format externe. Ces méthodes enregistrent le contenu de l’objet ImageDocument dans le format interne d’ABBYY FineReader Engine, qui ne peut être affiché dans aucun programme externe.
Formats d’image pris en charge