Zum Hauptinhalt springen
Dieses Objekt wird zum Speichern von Parametern für die Bildmodifikation verwendet. Die Methode IImageDocument::Modify, mit der ein Bild modifiziert wird, erhält wie auch einige andere Methoden eine Referenz auf dieses Objekt als Eingabeparameter. ImageModification ermöglicht eine Vielzahl von Operationen an einem Bild, z. B. Strecken, das Festlegen von Beschneidungsbereichen, Invertierungsregionen, Paint-Regionen, Bereichen zum Ersetzen von Pixeln und Bereichen zum Entfernen von Bildstörungen. Das Bild wird dabei wie folgt modifiziert:
  • Die Textfarbe und die Größe der Bildstörungen in Regionen werden bestimmt.
  • Der Bildteil innerhalb der Beschneidungsbereiche wird ausgeschnitten.
  • „Paint-Regionen“ werden mit der entsprechenden Farbe gefüllt.
  • Farben innerhalb der „invert“-Regionen werden invertiert.
  • Schwarze Punkte innerhalb der Regionen „replace black pixels“ werden durch Punkte der entsprechenden Farbe ersetzt.
  • Weiße Punkte innerhalb der Regionen „replace white pixels“ werden durch Punkte der entsprechenden Farbe ersetzt.
  • Die Bildstörungen innerhalb der Regionen „remove garbage“ werden entfernt. Diese Modifikation kann nur auf die Schwarz-Weiß-Bildebene angewendet werden.
  • Das Bild wird mit dem durch die Eigenschaft StretchRatio definierten Streckverhältnis gestreckt.
Alle Regionen, die zu diesem Objekt hinzugefügt werden, dürfen die Grenzen des Bildrechtecks nicht überschreiten. Das ImageModification-Objekt ist ein persistentes Objekt. Das bedeutet, dass der aktuelle Zustand des Objekts in persistentem Speicher gespeichert werden kann. Später kann das Objekt durch Lesen seines Zustands aus dem persistenten Speicher erneut erstellt werden. Die folgenden Methoden ermöglichen die Persistenz des Objekts: Linux: SaveToFile und LoadFromFile Windows: SaveToFile, LoadFromFile, SaveToMemory und LoadFromMemory.

Eigenschaften

NameTypBeschreibung
ApplicationEngine, nur lesbarGibt das Engine-Objekt zurück.
StretchRatiodoubleGibt das Streckverhältnis an, das auf das Bild angewendet wird. Standardmäßig ist diese Eigenschaft auf 1.0 gesetzt, was keiner Streckung entspricht.

Methoden

NameBeschreibung
AddClipRegionFügt dem internen Array von Beschneidungsbereichen einen neuen Beschneidungsbereich hinzu.
AddInvertRegionFügt dem internen Array von Invertierungsregionen eine neue Invertierungsregion hinzu.
AddPaintRegionFügt dem internen Array von Paint-Regionen eine neue Paint-Region hinzu.
AddReplaceBlackPixelsRegionFügt dem internen Array von Regionen zum Ersetzen schwarzer Pixel eine neue Region zum Ersetzen schwarzer Pixel hinzu.
AddReplaceWhitePixelsRegionFügt dem internen Array von Regionen zum Ersetzen weißer Pixel eine neue Region zum Ersetzen weißer Pixel hinzu.
ClearClipRegionsLeert das interne Array von Beschneidungsbereichen.
ClearInvertRegionsLeert das interne Array von Invertierungsregionen.
ClearPaintRegionsLeert das interne Array von Paint-Regionen.
ClearReplaceBlackPixelsRegionsLeert das interne Array von Regionen zum Ersetzen schwarzer Pixel.
ClearReplaceWhitePixelsRegionsLeert das interne Array von Regionen zum Ersetzen weißer Pixel.
CopyFromInitialisiert die Eigenschaften des aktuellen Objekts mit den Werten entsprechender Eigenschaften eines anderen Objekts.
LoadFromFileStellt den Objektinhalt aus einer Datei auf dem Datenträger wieder her.
LoadFromMemory <Note> Nur unter Windows </Note>Stellt den Objektinhalt aus dem globalen Speicher wieder her.
SaveToFileSpeichert den Objektinhalt in einer Datei auf dem Datenträger.
SaveToMemory <Note> Nur unter Windows. </Note>Speichert den Objektinhalt im globalen Speicher.

Ausgabeparameter

Dieses Objekt ist der Ausgabeparameter der Methode CreateImageModification des Objekts Engine.

Eingabeparameter

Dieses Objekt wird als Eingabeparameter an folgende Methoden übergeben:

Beispiele

int splitStartPosition;
int splitEndPosition;
bool isVerticalSplit;
FREngine.IFRDocument frDoc;
FREngine.IFRPage page;
// Das Bild einer Dokumentseite in zwei Seiten teilen
// Bildabmessungen
int width = page.ImageDocument.ColorImage.Width;
int height = page.ImageDocument.ColorImage.Height;
// Seite duplizieren
frDoc.AddPage(page);
FREngine.IFRPage secondPage = frDoc.Pages[frDoc.Pages.Count - 1];
// Erste und zweite Seite zuschneiden
FREngine.IImageModification firstModification = engine.CreateImageModification();
FREngine.IRegion firstClipRegion = engine.CreateRegion();
FREngine.IImageModification secondModification = engine.CreateImageModification();
FREngine.IRegion secondClipRegion = engine.CreateRegion();
if (isVerticalSplit)
{
 firstClipRegion.AddRect(0, 0, splitStartPosition, height - 1 );
 secondClipRegion.AddRect(splitEndPosition, 0, width - 1, height - 1);
}
else
{
 firstClipRegion.AddRect(0, 0, width - 1, splitStartPosition);
 secondClipRegion.AddRect(0, splitEndPosition, width - 1, height - 1);
}
firstModification.AddClipRegion(firstClipRegion);
page.ImageDocument.Modify(firstModification);
secondModification.AddClipRegion(secondClipRegion);
secondPage.ImageDocument.Modify(secondModification);

Siehe auch

Arbeiten mit Bildern Arbeiten mit Eigenschaften