类 TiffImage
内容
[
隐藏
]TiffImage class
使用我们的 API 处理标记图像文件格式(TIFF)光栅图像,提供对各种分辨率的全面支持以及诸如 EXIF 数据操作和 alpha 通道等高级编辑功能。对扫描图像进行角度归一化、调整大小、转换为灰度,并轻松应用滤镜、伽马校正和图像参数调整。无缝处理多帧 TIFF 文件,创建图形路径、添加形状,并轻松将图像保存为不同格式。
public class TiffImage : RasterCachedMultipageImage, IMultipageImageExt
构造函数
| 名称 | 描述 |
|---|---|
| TiffImage(TiffFrame) | 初始化 TiffImage 类的新对象,指定 frame 参数。此构造函数有助于创建 TiffImage 实例,允许开发者指定要加载或处理的帧,从而简化其应用程序中的 Tiff 图像处理任务。 |
| TiffImage(TiffFrame[]) | 创建 TiffImage 类的新实例,提供帧列表作为参数。此构造函数使得能够使用多个帧初始化 TiffImage 对象,便于在软件应用中高效处理和操作 TIFF 图像序列。 |
属性
| 名称 | 描述 |
|---|---|
| ActiveFrame { get; set; } | 无缝管理活动帧,促进在指定上下文中的动态导航和操作。让您的应用程序能够高效地与多媒体内容交互,提升用户参与度和生产力。 |
| AutoAdjustPalette { get; set; } | 获取或设置指示是否自动调整调色板的值。 |
| override BackgroundColor { get; set; } | 获取或设置背景颜色的值。 |
| override BitsPerPixel { get; } | 获取图像的每像素位数。 |
| Bounds { get; } | 获取图像的边界。 |
| BufferSizeHint { get; set; } | 获取或设置缓冲区大小提示,该提示定义了所有内部缓冲区的最大允许大小。 |
| ByteOrder { get; set; } | 无缝切换 TIFF 文件的字节顺序,确保对数据解释的精确控制。为您的应用程序提供灵活性,以适应多样的文件规范,提升兼容性和数据处理效率。 |
| Container { get; } | 获取 Image 容器。 |
| DataStreamContainer { get; } | 获取对象的数据流。 |
| Disposed { get; } | 获取一个值,指示此实例是否已释放。 |
| ExifData { get; set; } | 获取或设置 Exif 数据。 |
| override FileFormat { get; } | 检索与图像关联的文件格式值。此属性是图像元数据检索的关键方面,使软件应用能够高效识别和解释图像数据的格式。 |
| Frames { get; } | 检索一个包含 TiffFrame 实例的数组,以实现对 TIFF 图像中各个帧的全面访问和操作。利用该数组的力量简化图像处理工作流,确保对视觉内容的精确控制和优化。 |
| override HasAlpha { get; } | 确定图像是否具有 alpha 通道,为渲染和合成操作提供关键信息。集成此功能以优化视觉处理工作流,确保对透明元素的准确表示和操作。 |
| virtual HasBackgroundColor { get; set; } | 获取或设置指示图像是否具有背景颜色的值。 |
| override HasTransparentColor { get; } | 获取指示图像是否具有透明颜色的值。 |
| override Height { get; } | 获取图像高度。 |
| override HorizontalResolution { get; set; } | 获取指定 Image 的水平分辨率(每英寸像素数),便于精确的调整和渲染能力。轻松访问关键图像元数据,提升图像处理工作流的流畅性,增强用户体验。 |
| override ImageOpacity { get; } | 获取此图像的不透明度。 |
| InterruptMonitor { get; set; } | 获取或设置中断监视器。 |
| override IsCached { get; } | 获取指示图像数据当前是否已缓存的值。 |
| IsRawDataAvailable { get; } | 获取指示是否可进行原始数据加载的值。 |
| override Metadata { get; } | 获取或设置帧的 XMP 数据。 |
| override PageCount { get; } | 检索指定文档的总页数,以便高效导航和管理多页内容。将此功能整合到用户体验中,实现对完整文档结构的无缝访问。 |
| virtual PageExportingAction { get; set; } | 获取或设置页面导出操作。请注意,设置此方法后将在执行后自动释放页面资源。它将在每个页面保存之前执行。 |
| override Pages { get; } | 无缝访问文档的页面,实现内容结构内的动态导航和操作。为您的应用提供高效的单页访问,促进文档处理的流畅性并提升用户交互体验。 |
| Palette { get; set; } | 获取或设置颜色调色板。当像素直接表示时,调色板不被使用。 |
| override PremultiplyComponents { get; set; } | 指示组件是否需要预乘,以确保对视觉元素的高效处理。通过切换此属性来提升渲染过程,简化图形工作流,实现性能优化。 |
| RawCustomColorConverter { get; set; } | 获取或设置自定义颜色转换器 |
| virtual RawDataFormat { get; } | 获取原始数据格式。 |
| RawDataSettings { get; } | 获取当前原始数据设置。注意,使用这些设置时数据将在不进行转换的情况下加载。 |
| RawFallbackIndex { get; set; } | 获取或设置调色板索引超出范围时使用的回退索引 |
| RawIndexedColorConverter { get; set; } | 获取或设置索引颜色转换器 |
| virtual RawLineSize { get; } | 获取原始行大小(字节)。 |
| Size { get; } | 获取图像尺寸。 |
| virtual TransparentColor { get; set; } | 获取图像透明颜色。 |
| virtual UpdateXmpData { get; set; } | 获取或设置一个值,指示是否更新 XMP 元数据。 |
| override UsePalette { get; } | 获取一个值,指示是否使用图像调色板。 |
| virtual UseRawData { get; set; } | 获取或设置一个值,指示在可用原始数据加载时是否使用原始数据加载。 |
| override VerticalResolution { get; set; } | 获取指定 Image 的垂直分辨率(每英寸像素数),实现精确的调整和渲染优化。轻松利用关键图像数据,简化图像处理工作流,确保应用程序的卓越质量和性能。 |
| override Width { get; } | 获取图像宽度。 |
| XmpData { get; set; } | 获取或设置 Xmp 数据。 |
方法
| 名称 | 描述 |
|---|---|
| Add(TiffImage) | 将指定图像的帧无缝添加到当前帧中,整合其内容并提升组合灵活性。集成此方法以简化应用中的帧管理和操作,促进对多帧图像的高效处理。 |
| AddFrame(TiffFrame) | 将指定帧无缝合并到图像中,扩展其内容和多样性。使用此方法提升图像的组合与管理,使应用能够高效处理多帧图像。 |
| AddFrames(TiffFrame[]) | 将帧数组无缝集成到图像中,丰富其内容和多样性。利用此方法提升图像的组合与管理,实现对多帧图像的高效处理。 |
| virtual AddPage(RasterImage) | 将新页面无缝合并到现有图像中,扩展其内容和多功能性。使用此方法提升文档的构成和管理,使得在应用程序中高效处理多页图像成为可能。 |
| override AdjustBrightness(int) | 实现对图像的 brightness 调整,允许修改整体亮度水平。将此方法纳入图像处理工作流,以提升可见性并改善应用程序中图像的视觉质量。 |
| override AdjustContrast(float) | 提升 Image 实例的对比度,放大其明暗区域的差异。集成此功能可改善图像的视觉清晰度和整体质量。 |
| override AdjustGamma(float) | 对图像进行伽马校正,调整像素强度以实现期望的色彩平衡。将此方法纳入图像处理工作流,以提升视觉质量并提高后续分析或显示任务的准确性。 |
| override AdjustGamma(float, float, float) | 使用红、绿、蓝通道的独立系数对图像进行伽马校正,实现对色彩平衡和对比度的细致调节。将此方法集成到图像处理管线中,以实现对颜色渲染的精确控制并提升视觉保真度。 |
| AlignResolutions() | 实现 AlignResolutions 辅助方法以同步水平和垂直分辨率,确保图像尺寸的一致性。此功能通过统一分辨率参数,简化图像处理工作流,优化跨平台和设备的视觉质量与一致性。 |
| override AnalyzePercentageDigitalSignature(string) | 计算提取数据与原始密码之间的相似度百分比。 |
| override AutoBrightnessContrast() | 对整幅图像执行自动自适应亮度和对比度归一化。 |
| AutoRotate() | 自动根据从 Exif 元数据提取的方向数据旋转图像。此方法确保图像以正确的方向显示,提升用户体验并消除手动调整的需求。通过分析 Exif 信息,图像相应地被旋转,提供跨平台和设备的无缝观看体验。此自动旋转过程简化了图像处理,并在处理大量方向各异的图像时提升整体可用性。 |
| override BinarizeBradley(double) | 使用 Bradley 自适应阈值算法和积分图阈值对图像进行二值化 |
| override BinarizeBradley(double, int) | 在图像上实现二值化,采用 Bradley 自适应阈值算法结合积分图阈值。该方法根据图像邻域动态计算局部阈值,提升对不同光照条件的适应性,并确保后续处理任务的稳健分割。 |
| override BinarizeFixed(byte) | 使用预定义阈值对图像进行二值化,将其转换为前景与背景区域明确的二值图像。将此方法纳入图像处理工作流,以促进分割和特征提取任务,提高图像分析的准确性和效率。 |
| override BinarizeOtsu() | 利用 Otsu 阈值法对图像进行二值化,自动依据图像直方图确定最佳阈值。将此方法集成到图像处理工作流中,实现有效的分割和特征提取,提升图像分析任务的准确性和可靠性。 |
| Blend(Point, RasterImage, byte) | 将此图像实例与 overlay 图像混合。 |
| override Blend(Point, RasterImage, Rectangle, byte) | 将此图像实例与 overlay 图像混合。 |
| override CacheData() | 缓存数据为私有。 |
| CanSave(ImageOptionsBase) | 确定图像是否可以保存为传入保存选项所表示的指定文件格式。 |
| override Crop(Rectangle) | 使用指定的矩形区域裁剪图像,实现对所需内容的精确选择。将此方法纳入图像处理工作流,以高效去除不需要的区域,聚焦关键细节,提升图像的整体清晰度和构图。 |
| override Crop(int, int, int, int) | 通过指定左、右、上、下方向的偏移量对图像进行裁剪。此方法实现对图像所需部分的精确选取,便于高效去除不需要的区域并聚焦关键内容。将此功能集成到图像处理管线中,根据需要提升图像的清晰度和构图。 |
| Dispose() | 释放当前实例。 |
| Dither(DitheringMethod, int) | 对当前图像执行抖动处理。 |
| override Dither(DitheringMethod, int, IColorPalette) | 对当前图像执行抖动处理,以提升视觉质量并减少颜色条带伪影。将此方法纳入图像处理工作流,确保颜色过渡更平滑,提升整体图像外观和清晰度。 |
| override EmbedDigitalSignature(string) | 根据提供的密码将数字签名嵌入图像的每一页。 |
| override Filter(Rectangle, FilterOptionsBase) | 在指定的矩形内过滤内容,应用指定的图像处理滤镜以增强或修改所选区域。将此方法集成到图像操作工作流,以在应用程序中实现针对性的增强或转换。 |
| GetArgb32Pixel(int, int) | 获取图像的 32 位 ARGB 像素。 |
| GetDefaultArgb32Pixels(Rectangle) | 获取默认的 32 位 ARGB 像素数组。 |
| virtual GetDefaultOptions(object[]) | 获取默认选项。 |
| GetDefaultPixels(Rectangle, IPartialArgb32PixelLoader) | 使用部分像素加载器获取默认像素数组。 |
| GetDefaultRawData(Rectangle, RawDataSettings) | 获取默认原始数据数组。 |
| GetDefaultRawData(Rectangle, IPartialRawDataLoader, RawDataSettings) | 使用部分像素加载器获取默认原始数据数组。 |
| virtual GetModifyDate(bool) | 获取资源图像最近修改的日期和时间。 |
| override GetOriginalOptions() | 检索源文件设置派生的选项,便于无缝保留关键参数,如位深度及原始图像的其他重要属性。使用此方法保持图像处理任务的保真度和一致性,确保在不进行不必要修改的情况下获得最佳结果。例如,如果我们加载一张每像素 1 位的黑白 PNG 图像,然后使用 Save 方法保存,它将生成每像素 8 位的 PNG 图像。若要避免此情况并以 1 位保存 PNG 图像,请使用此方法获取相应的保存选项,并将其作为第二个参数传递给 Save 方法。 |
| GetPixel(int, int) | 获取图像像素。 |
| override GetSerializedStream(ImageOptionsBase, Rectangle, out int) | 转换为 aps。 |
| GetSkewAngle() | 获取倾斜角度。此方法适用于扫描的文本文档,用于在扫描时确定倾斜角度。 |
| override Grayscale() | 将图像转换为灰度表示,转化为单通道图像,每个像素表示强度。将此方法集成到图像处理管线中,以简化分析并提升对基于灰度算法的兼容性,促进应用中各种计算机视觉和图像分析任务的实现。 |
| InsertFrame(int, TiffFrame) | 在帧序列的指定索引处插入新帧,确保对帧排列的精确控制。使用此方法有效管理帧序列,促进在应用中对图像内容的动态操作和组织。 |
| override IsDigitalSigned(string, int) | 快速检查图像是否已数字签名,使用提供的密码和阈值。 |
| LoadArgb32Pixels(Rectangle) | 加载 32 位 ARGB 像素。 |
| LoadArgb64Pixels(Rectangle) | 加载 64 位 ARGB 像素。 |
| LoadCmyk32Pixels(Rectangle) | 加载 CMYK 格式的像素。 |
| LoadPartialArgb32Pixels(Rectangle, IPartialArgb32PixelLoader) | 按包部分加载 32 位 ARGB 像素。 |
| LoadPartialArgb64Pixels(Rectangle, IPartialArgb64PixelLoader) | 按包部分加载 64 位 ARGB 像素。 |
| LoadPartialPixels(Rectangle, IPartialPixelLoader) | 按包部分加载像素。 |
| LoadPixels(Rectangle) | 加载像素。 |
| LoadRawData(Rectangle, RawDataSettings, IPartialRawDataLoader) | 加载原始数据。 |
| LoadRawData(Rectangle, Rectangle, RawDataSettings, IPartialRawDataLoader) | 加载原始数据。 |
| NormalizeAngle() | 归一化角度。此方法适用于扫描的文本文档,以消除倾斜扫描。此方法使用GetSkewAngle 和 Rotate 方法。 |
| override NormalizeAngle(bool, Color) | 利用专为扫描文本文件设计的 NormalizeAngle 方法校正倾斜扫描,确保准确对齐。将此功能无缝集成到文本处理工作流中,以提升文档的可读性和质量,提高文本识别与分析任务的整体效率。此方法使用 GetSkewAngle 和 Rotate 方法。 |
| override NormalizeHistogram() | 归一化图像直方图——调整像素值以使用全部可用范围。 |
| ReadArgb32ScanLine(int) | 按指定的扫描线索引读取整条扫描线。 |
| ReadScanLine(int) | 按指定的扫描线索引读取整条扫描线。 |
| RemoveFrame(int) | 轻松地根据索引删除图像序列中的帧,简化应用程序中的帧管理。集成此功能可提升帧操作的效率和精度,促进图像内容的无缝组织和呈现。 |
| RemoveFrame(TiffFrame) | 高效地从图像序列中移除指定帧,帮助简化应用程序中的帧管理。集成此功能可提升帧操作的精度和灵活性,确保图像内容的无缝组织和呈现。 |
| override RemoveMetadata() | 通过将此 XmpData 和 ExifData 的值设为 null 来移除该图像实例的元数据。 |
| ReplaceColor(Color, byte, Color) | 将一种颜色替换为另一种颜色,允许差异并保留原始 alpha 值以保持平滑边缘。 |
| override ReplaceColor(int, byte, int) | 将一种颜色替换为另一种颜色,允许差异并保留原始 alpha 值以保持平滑边缘。 |
| ReplaceFrame(int, TiffFrame) | 在指定位置无缝替换为另一帧,促进图像序列中的动态帧管理。集成此方法可提升帧操作的灵活性和精度,确保应用程序内图像内容的最佳组织和呈现。 |
| ReplaceNonTransparentColors(Color) | 将所有非透明颜色替换为新颜色,并保留原始 alpha 值以保持平滑边缘。注意:如果在没有透明度的图像上使用,它将把所有颜色替换为单一颜色。 |
| override ReplaceNonTransparentColors(int) | 将所有非透明颜色替换为新颜色,并保留原始 alpha 值以保持平滑边缘。注意:如果在没有透明度的图像上使用,它将把所有颜色替换为单一颜色。 |
| Resize(int, int) | 调整图像大小。默认使用 NearestNeighbourResample。 |
| override Resize(int, int, ImageResizeSettings) | 根据指定设置调整图像大小,实现对尺寸、宽高比和缩放行为的精确控制。将此方法集成到图像处理工作流中,以实现符合应用程序特定需求的自定义缩放操作。 |
| override Resize(int, int, ResizeType) | 根据指定的缩放类型调整图像大小,在保持宽高比或使用特定缩放算法的同时,实现图像尺寸的灵活调整。将此方法纳入图像处理工作流,以在应用程序中实现对缩放操作的精确控制。 |
| ResizeHeightProportionally(int) | 按比例调整高度。默认使用 NearestNeighbourResample。 |
| virtual ResizeHeightProportionally(int, ImageResizeSettings) | 按比例调整高度。 |
| override ResizeHeightProportionally(int, ResizeType) | 对图像高度进行比例调整,保持宽高比以确保视觉一致性。使用此方法在应用程序中动态调整图像大小,确保在各种平台和设备上实现最佳显示且不影响内容质量。 |
| ResizeProportional(int, int, ResizeType) | 对图像进行比例缩放操作,在调整尺寸的同时保持宽高比。使用此方法在应用程序中动态缩放图像,确保内容完整性的视觉表现一致。比例缩放将根据 newWidth/width 和 newHeight/height 的比例对每个帧进行缩放。 |
| ResizeWidthProportionally(int) | 按比例调整宽度。使用默认的 NearestNeighbourResample。 |
| virtual ResizeWidthProportionally(int, ImageResizeSettings) | 按比例调整宽度。 |
| override ResizeWidthProportionally(int, ResizeType) | 在保持宽高比的前提下调整图像宽度,确保比例缩放以获得最佳视觉呈现。利用此方法在应用程序中动态缩放图像,实现跨各种显示环境的一致且美观的渲染。 |
| override Rotate(float) | 围绕中心旋转图像。 |
| override Rotate(float, bool, Color) | 围绕中心点按指定角度旋转图像,实现精确的方向调整。将此功能纳入图像处理流水线,以便进行准确的变换,确保应用程序中视觉内容的最佳对齐和呈现。 |
| override RotateFlip(RotateFlipType) | 仅在活动帧上执行旋转、翻转或两者的组合操作。此方法可对图像序列中的单帧进行精确操作,提升应用程序中图像编辑和合成的灵活性。 |
| Save() | 将图像数据保存到底层流。 |
| Save(Stream) | 将对象的数据保存到指定的流。 |
| override Save(string) | 将图像保存到指定的文件位置。 |
| Save(Stream, ImageOptionsBase) | 根据保存选项,将图像数据以指定的文件格式保存到指定的流中。 |
| virtual Save(string, bool) | 将对象的数据保存到指定的文件位置。 |
| virtual Save(string, ImageOptionsBase) | 根据保存选项,将对象的数据以指定的文件格式保存到指定的文件位置。 |
| override Save(Stream, ImageOptionsBase, Rectangle) | 根据保存选项,将图像数据以指定的文件格式保存到指定的流中。 |
| virtual Save(string, ImageOptionsBase, Rectangle) | 根据保存选项,将对象的数据以指定的文件格式保存到指定的文件位置。 |
| SaveArgb32Pixels(Rectangle, int[]) | 保存 32 位 ARGB 像素。 |
| SaveCmyk32Pixels(Rectangle, int[]) | 保存像素。 |
| SavePixels(Rectangle, Color[]) | 保存像素。 |
| SaveRawData(byte[], int, Rectangle, RawDataSettings) | 保存原始数据。 |
| SetArgb32Pixel(int, int, int) | 为指定位置设置图像的 32 位 ARGB 像素。 |
| override SetPalette(IColorPalette, bool) | 设置图像调色板。 |
| SetPixel(int, int, Color) | 为指定位置设置图像像素。 |
| override SetResolution(double, double) | 为指定的 RasterImage 设置分辨率,实现对图像渲染和显示属性的精确控制。集成此功能可优化视觉输出,并确保与多种输出设备和平台的兼容性,提升整体用户体验。 |
| virtual ToBitmap() | 将光栅图像转换为位图。此方法在 .Net7.0 及更高版本中不受支持。 |
| virtual TrySetMetadata(IImageMetadataFormat) | 尝试设置 metadata 实例,前提是此 Image 实例支持并实现了 IImageMetadataFormat 类型。 |
| WriteArgb32ScanLine(int, int[]) | 将整条扫描线写入指定的扫描线索引。 |
| WriteScanLine(int, Color[]) | 将整条扫描线写入指定的扫描线索引。 |
示例
从 TIFF 图像的路径资源创建图形路径。
[C#]
using (var image = (TiffImage)Image.Load("Bottle.tif"))
{
// 使用来自 TIFF 图像的 PathResources 创建 GraphicsPath
var graphicsPath = PathResourceConverter.ToGraphicsPath(image.ActiveFrame.PathResources.ToArray(), image.ActiveFrame.Size);
var graphics = new Graphics(image);
// 绘制红色线条并保存图像
graphics.DrawPath(new Pen(Color.Red, 10), graphicsPath);
image.Save("BottleWithRedBorder.tif");
}
使用 Graphics Path 创建路径资源。
[C#]
static void Main(string[] args)
{
using (var image = (TiffImage)Image.Load("Bottle.tif"))
{
// 为 GraphicsPath 创建矩形 Figure
var figure = new Figure();
figure.AddShape(CreateBezierShape(100f, 100f, 500f, 100f, 500f, 1000f, 100f, 1000f));
// 使用我们的 Figure 创建 GraphicsPath
var graphicsPath = new GraphicsPath();
graphicsPath.AddFigure(figure);
// 使用 GraphicsPath 设置 PathResources
var pathResouze = PathResourceConverter.FromGraphicsPath(graphicsPath, image.Size);
image.ActiveFrame.PathResources = new List<PathResource>(pathResouze);
// 保存图像
image.Save("BottleWithRectanglePath.tif");
}
}
private static BezierShape CreateBezierShape(params float[] coordinates)
{
var bezierPoints = CoordinatesToBezierPoints(coordinates).ToArray();
return new BezierShape(bezierPoints, true);
}
private static IEnumerable<PointF> CoordinatesToBezierPoints(float[] coordinates)
{
for (var coordinateIndex = 0; coordinateIndex < coordinates.Length; coordinateIndex += 2)
for (var index = 0; index < 3; index++)
yield return new PointF(coordinates[coordinateIndex], coordinates[coordinateIndex + 1]);
}
另请参见
- class RasterCachedMultipageImage
- interface IMultipageImageExt
- namespace Aspose.Imaging.FileFormats.Tiff
- assembly Aspose.Imaging