跳转到主要内容
此对象用于存储图像修改参数。用于修改图像的方法 IImageDocument::Modify 以及其他一些方法,都会将对此对象的引用作为输入参数。ImageModification 支持对图像执行多种操作,例如拉伸、设置裁剪区域、反相区域、涂绘区域、像素替换区域以及去污区域。图像按以下方式进行修改:
  • 确定各区域中文本的颜色和污点大小。
  • 裁切裁剪区域内的图像部分。
  • 用相应的颜色填充“涂绘”区域。
  • 对“反相”区域内的颜色进行反相处理。
  • 将“替换黑色像素”区域内的黑点替换为相应颜色的点。
  • 将“替换白色像素”区域内的白点替换为相应颜色的点。
  • 清除“去污”区域内的污点。此修改只能应用于黑白图像平面。
  • 按 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);

另请参阅

处理图像 处理属性