类 RasterImage

RasterImage class

表示支持光栅图形操作的光栅图像。

public abstract class RasterImage : Image, IRasterImageArgb32PixelLoader

属性

名称描述
AutoAdjustPalette { get; set; }获取或设置指示是否自动调整调色板的值。
virtual BackgroundColor { get; set; }获取或设置背景颜色的值。
abstract BitsPerPixel { get; }获取图像的每像素位数。
Bounds { get; }获取图像的边界。
BufferSizeHint { get; set; }获取或设置缓冲区大小提示,该提示定义了所有内部缓冲区的最大允许大小。
Container { get; }获取 Image 容器。
DataStreamContainer { get; }获取对象的数据流。
Disposed { get; }获取一个值,指示此实例是否已释放。
ExifData { get; set; }获取或设置 Exif 数据。
virtual FileFormat { get; }获取文件格式的值
virtual HasAlpha { get; }获取一个值,指示此实例是否具有 alpha。
virtual HasBackgroundColor { get; set; }获取或设置指示图像是否具有背景颜色的值。
virtual HasTransparentColor { get; set; }获取或设置一个值,指示此 RasterImage 实例是否具有透明颜色。
abstract Height { get; }获取图像高度。
virtual HorizontalResolution { get; set; }获取或设置此 RasterImage 的水平分辨率(每英寸像素数)。
virtual ImageOpacity { get; }获取此图像的不透明度。
InterruptMonitor { get; set; }获取或设置中断监视器。
abstract IsCached { get; }获取一个值,指示对象的数据当前是否已缓存且无需读取数据。
IsRawDataAvailable { get; }获取指示是否可进行原始数据加载的值。
virtual Metadata { get; }获取图像元数据。
Palette { get; set; }获取或设置颜色调色板。当像素直接表示时,调色板不被使用。
virtual 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; }获取或设置一个值,指示在可用原始数据加载时是否使用原始数据加载。
virtual VerticalResolution { get; set; }获取或设置此 RasterImage 的垂直分辨率(每英寸像素数)。
abstract Width { get; }获取图像宽度。
XmpData { get; set; }获取或设置 Xmp 数据。

方法

名称描述
virtual AdjustBrightness(int)调整图像的亮度。
virtual AdjustContrast(float)图像对比度。
virtual AdjustGamma(float)图像的伽马校正。
virtual AdjustGamma(float, float, float)图像的伽马校正。
virtual AnalyzePercentageDigitalSignature(string)计算提取数据与原始密码之间的相似度百分比。
virtual AutoBrightnessContrast()对整幅图像进行自动自适应亮度和对比度归一化。
AutoRotate()自动根据从 Exif 元数据提取的方向数据旋转图像。此方法确保图像以正确的方向显示,提升用户体验并消除手动调整的需求。通过分析 Exif 信息,图像相应地被旋转,提供跨平台和设备的无缝观看体验。此自动旋转过程简化了图像处理,并在处理大量方向各异的图像时提升整体可用性。
virtual BinarizeBradley(double)使用 Bradley 自适应阈值算法和积分图阈值对图像进行二值化
virtual BinarizeBradley(double, int)使用 Bradley 自适应阈值算法和积分图阈值对图像进行二值化
virtual BinarizeFixed(byte)使用预定义阈值对图像进行二值化
virtual BinarizeOtsu()使用 Otsu 阈值法对图像进行二值化
Blend(Point, RasterImage, byte)将此图像实例与 overlay 图像混合。
virtual Blend(Point, RasterImage, Rectangle, byte)将此图像实例与 overlay 图像混合。
abstract CacheData()缓存数据并确保不会从底层 DataStreamContainer 再进行额外的数据加载。
CanSave(ImageOptionsBase)确定图像是否可以保存为传入保存选项所表示的指定文件格式。
virtual Crop(Rectangle)裁剪指定的矩形。
virtual Crop(int, int, int, int)使用位移裁剪图像。
Dispose()释放当前实例。
Dither(DitheringMethod, int)对当前图像执行抖动处理。
abstract Dither(DitheringMethod, int, IColorPalette)对当前图像执行抖动处理。
virtual EmbedDigitalSignature(string)使用隐写技术将基于提供的密码的数字签名嵌入图像中。
virtual 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)获取资源图像最近修改的日期和时间。
virtual GetOriginalOptions()获取基于原始文件设置的选项。这有助于保持原始图像的位深度和其他参数不变。例如,如果我们加载一个每像素 1 位的黑白 PNG 图像,然后使用 Save 方法保存,它将生成每像素 8 位的输出 PNG 图像。为避免这种情况并以每像素 1 位保存 PNG 图像,请使用此方法获取相应的保存选项,并将其作为第二个参数传递给 Save 方法。
GetPixel(int, int)获取图像像素。
virtual GetSerializedStream(ImageOptionsBase, Rectangle, out int)转换为 aps。
GetSkewAngle()获取倾斜角度。此方法适用于扫描的文本文档,用于在扫描时确定倾斜角度。
virtual Grayscale()将图像转换为灰度表示
virtual 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()归一化角度。此方法适用于扫描的文本文档,以消除倾斜扫描。此方法使用GetSkewAngleRotate 方法。
virtual NormalizeAngle(bool, Color)归一化角度。此方法适用于扫描的文本文档,以消除倾斜扫描。此方法使用GetSkewAngleRotate 方法。
virtual NormalizeHistogram()归一化图像直方图——调整像素值以使用全部可用范围。
ReadArgb32ScanLine(int)按指定的扫描线索引读取整条扫描线。
ReadScanLine(int)按指定的扫描线索引读取整条扫描线。
override RemoveMetadata()通过将此XmpData 值设为 null 来移除此图像实例的元数据。
ReplaceColor(Color, byte, Color)将一种颜色替换为另一种颜色,允许差异并保留原始 alpha 值以保持平滑边缘。
virtual ReplaceColor(int, byte, int)将一种颜色替换为另一种颜色,允许差异并保留原始 alpha 值以保持平滑边缘。
ReplaceNonTransparentColors(Color)将所有非透明颜色替换为新颜色,并保留原始 alpha 值以保持平滑边缘。注意:如果在没有透明度的图像上使用,它将把所有颜色替换为单一颜色。
virtual ReplaceNonTransparentColors(int)将所有非透明颜色替换为新颜色,并保留原始 alpha 值以保持平滑边缘。注意:如果在没有透明度的图像上使用,它将把所有颜色替换为单一颜色。
Resize(int, int)调整图像大小。默认使用 NearestNeighbourResample。
override Resize(int, int, ImageResizeSettings)使用扩展选项调整图像大小。
virtual Resize(int, int, ResizeType)调整图像大小。
ResizeHeightProportionally(int)按比例调整高度。默认使用 NearestNeighbourResample。
virtual ResizeHeightProportionally(int, ImageResizeSettings)按比例调整高度。
virtual ResizeHeightProportionally(int, ResizeType)按比例调整高度。
ResizeWidthProportionally(int)按比例调整宽度。使用默认的 NearestNeighbourResample。
virtual ResizeWidthProportionally(int, ImageResizeSettings)按比例调整宽度。
virtual ResizeWidthProportionally(int, ResizeType)按比例调整宽度。
override Rotate(float)围绕中心旋转图像。
virtual Rotate(float, bool, Color)围绕中心旋转图像。
abstract 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)为指定位置设置图像像素。
virtual SetResolution(double, double)设置此 RasterImage 的分辨率。
virtual ToBitmap()将光栅图像转换为位图。此方法在 .Net7.0 及更高版本中不受支持。
virtual TrySetMetadata(IImageMetadataFormat)尝试设置一个 metadata 实例,如果此 Image 实例支持并实现了 IImageMetadataFormat 类型。
WriteArgb32ScanLine(int, int[])将整条扫描线写入指定的扫描线索引。
WriteScanLine(int, Color[])将整条扫描线写入指定的扫描线索引。

示例

本示例展示了如何将像素信息加载到 Color 类型的数组中,操作该数组并将其设置回图像。为执行这些操作,示例使用 MemoryStream 对象创建一个新的(GIF 格式)图像文件。

[C#]

//创建 MemoryStream 的实例
using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
{
    //创建 GifOptions 的实例并设置其各种属性,包括 Source 属性
    Aspose.Imaging.ImageOptions.GifOptions gifOptions = new Aspose.Imaging.ImageOptions.GifOptions();
    gifOptions.Source = new Aspose.Imaging.Sources.StreamSource(stream);

    //创建 Image 的实例
    using (Aspose.Imaging.RasterImage image = (Aspose.Imaging.RasterImage)Aspose.Imaging.Image.Create(gifOptions, 500, 500))
    {
        //通过将区域指定为图像边界来获取图像像素
        Aspose.Imaging.Color[] pixels = image.LoadPixels(image.Bounds);

        //遍历数组并设置交替索引像素的颜色
        for (int index = 0; index < pixels.Length; index++)
        {
            if (index % 2 == 0)
            {
                //将索引像素颜色设置为黄色
                pixels[index] = Aspose.Imaging.Color.Yellow;
            }
            else
            {
                //将索引像素颜色设置为蓝色
                pixels[index] = Aspose.Imaging.Color.Blue;
            }
        }

        //将像素更改应用到图像
        image.SavePixels(image.Bounds, pixels);

        // 保存所有更改。
        image.Save();
    }

    // 将 MemoryStream 写入文件
    using (System.IO.FileStream fileStream = new System.IO.FileStream(@"C:\temp\output.gif", System.IO.FileMode.Create))
    {
        stream.WriteTo(fileStream);
    }   
}

另请参见