跳轉到主要內容
此物件用於儲存影像修改的參數。用於修改影像的 IImageDocument::Modify 方法以及其他一些方法,會接受此物件的參考作為輸入參數。ImageModification 可對影像執行多種操作,例如拉伸、設定裁剪區域、反相區域、塗色區域、像素取代區域,以及移除雜點區域。影像會依照下列方式修改:
  • 判定各區域中文字的顏色與雜點大小。
  • 裁去裁剪區域內的影像部分。
  • 以對應的顏色填滿「塗色」區域。
  • 將「invert」區域內的顏色反相。
  • 將「replace black pixels」區域內的黑點替換為對應顏色的點。
  • 將「replace white pixels」區域內的白點替換為對應顏色的點。
  • 清除「remove garbage」區域內的雜點。此修改僅可套用於黑白影像平面。
  • 依 StretchRatio 屬性定義的拉伸比率拉伸影像。
加入此物件中的所有區域都不得超出影像矩形的邊界。 ImageModification 物件是持久性物件。這表示可將物件目前的狀態寫入持久性儲存體。之後,可藉由從持久性儲存體讀取物件狀態來重新建立該物件。下列方法可提供物件的持久化功能: Linux:SaveToFileLoadFromFile Windows:SaveToFileLoadFromFileSaveToMemoryLoadFromMemory

屬性

名稱型別說明
ApplicationEngine, 唯讀回傳 Engine 物件。
StretchRatiodouble指定要套用至影像的拉伸比例。此屬性的預設值為 1.0,表示不進行拉伸。

方法

名稱說明
AddClipRegion將新的裁剪區域新增至裁剪區域的內部陣列。
AddInvertRegion將新的反相區域新增至反相區域的內部陣列。
AddPaintRegion將新的塗色區域新增至塗色區域的內部陣列。
AddReplaceBlackPixelsRegion將新的「取代黑色像素」區域新增至「取代黑色像素」區域的內部陣列。
AddReplaceWhitePixelsRegion將新的「取代白色像素」區域新增至「取代白色像素」區域的內部陣列。
ClearClipRegions清除裁剪區域的內部陣列。
ClearInvertRegions清除反相區域的內部陣列。
ClearPaintRegions清除塗色區域的內部陣列。
ClearReplaceBlackPixelsRegions清除「取代黑色像素」區域的內部陣列。
ClearReplaceWhitePixelsRegions清除「取代白色像素」區域的內部陣列。
CopyFrom使用另一個物件中對應屬性的值,初始化目前物件的屬性。
LoadFromFile從磁碟上的檔案還原物件內容。
LoadFromMemory <Note> 僅限 Windows </Note>從全域記憶體還原物件內容。
SaveToFile將物件內容儲存至磁碟上的檔案。
SaveToMemory <Note> 僅限 Windows。 </Note>將物件內容儲存至全域記憶體。

輸出參數

此物件是 Engine 物件的 CreateImageModification 方法之輸出參數。

輸入參數

此物件會作為輸入參數傳遞給下列方法:

範例

int splitStartPosition;
int splitEndPosition;
bool isVerticalSplit;
FREngine.IFRDocument frDoc;
FREngine.IFRPage page;
// 將文件頁面的影像分割為兩個頁面
// 影像尺寸
int width = page.ImageDocument.ColorImage.Width;
int height = page.ImageDocument.ColorImage.Height;
// 複製頁面
frDoc.AddPage(page);
FREngine.IFRPage secondPage = frDoc.Pages[frDoc.Pages.Count - 1];
// 裁切第一頁和第二頁
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);

另請參閱

處理影像 使用屬性