ImageOptionsBase

Inheritance: java.lang.Object, com.aspose.imaging.DisposableObject

All Implemented Interfaces: com.aspose.imaging.IMetadataContainer

public abstract class ImageOptionsBase extends DisposableObject implements IMetadataContainer

Image 基础选项。

方法

方法描述
isKeepMetadata()获取一个值,指示在导出时是否保留原始图像元数据。
setKeepMetadata(boolean value)一个值,指示在导出时是否保留原始图像元数据。
getXmpData()获取 XMP 元数据容器。
setXmpData(XmpPacketWrapper value)设置 XMP 元数据容器。
getExifData()获取 Exif 数据。
setExifData(ExifData value)设置 Exif 数据。
getSource()获取用于创建图像的源。
setSource(Source value)获取或设置用于创建图像的源。
getPalette()获取颜色调色板。
setPalette(IColorPalette value)设置颜色调色板。
getResolutionSettings()获取分辨率设置。
setResolutionSettings(ResolutionSetting value)设置分辨率设置。
getVectorRasterizationOptions()获取矢量光栅化选项。
setVectorRasterizationOptions(VectorRasterizationOptions value)设置矢量光栅化选项。
getBufferSizeHint()获取缓冲区大小提示,该提示定义了所有内部缓冲区的最大允许大小。
setBufferSizeHint(int value)设置缓冲区大小提示,该提示定义了所有内部缓冲区的最大允许大小。
getMultiPageOptions()多页选项
setMultiPageOptions(MultiPageOptions value)多页选项
getFullFrame()获取指示是否为 [full frame] 的值。
setFullFrame(boolean value)设置指示是否为 [full frame] 的值。
getProgressEventHandler()获取进度事件处理程序。
setProgressEventHandler(ProgressEventHandler value)设置进度事件处理程序。
deepClone()克隆此实例。
trySetMetadata(IImageMetadataFormat metadata)尝试设置一个 metadata 实例,如果此 Image 实例支持并实现 IImageMetadataFormat 实例。

isKeepMetadata()

public final boolean isKeepMetadata()

获取一个值,指示在导出时是否保留原始图像元数据。

Returns: 布尔型 - 一个指示在导出时是否保留原始图像元数据的值。

setKeepMetadata(boolean value)

public final void setKeepMetadata(boolean value)

一个值,指示在导出时是否保留原始图像元数据。

Parameters:

参数类型描述
valueboolean一个指示在导出时是否保留原始图像元数据的值。

getXmpData()

public XmpPacketWrapper getXmpData()

获取 XMP 元数据容器。

值:XMP 数据容器。

Returns: XmpPacketWrapper - the XMP metadata container.

setXmpData(XmpPacketWrapper value)

public void setXmpData(XmpPacketWrapper value)

设置 XMP 元数据容器。

值:XMP 数据容器。

Parameters:

参数类型描述
valueXmpPacketWrapperXMP 元数据容器。

getExifData()

public ExifData getExifData()

获取 Exif 数据。

Returns: ExifData - the Exif data.

setExifData(ExifData value)

public void setExifData(ExifData value)

设置 Exif 数据。

Parameters:

参数类型描述
valueExifDataExif 数据。

getSource()

public Source getSource()

获取用于创建图像的源。

Returns: Source - The source to create image in.

setSource(Source value)

public void setSource(Source value)

获取或设置用于创建图像的源。

Parameters:

参数类型描述
valueSource用于创建图像的源。

getPalette()

public IColorPalette getPalette()

获取颜色调色板。

Returns: IColorPalette - The color palette.

setPalette(IColorPalette value)

public void setPalette(IColorPalette value)

设置颜色调色板。

Parameters:

参数类型描述
valueIColorPalette颜色调色板。

Example: The following example shows how to palletize a BMP image to reduce its output size.


// 创建一个 100 x 100 像素的 BMP 图像。
com.aspose.imaging.fileformats.bmp.BmpImage bmpImage = new com.aspose.imaging.fileformats.bmp.BmpImage(100, 100);
try {
    // 图像左上角到右下角的线性渐变。
    com.aspose.imaging.brushes.LinearGradientBrush brush =
            new com.aspose.imaging.brushes.LinearGradientBrush(
                    new com.aspose.imaging.Point(0, 0),
                    new com.aspose.imaging.Point(bmpImage.getWidth(), bmpImage.getHeight()),
                    com.aspose.imaging.Color.getRed(),
                    com.aspose.imaging.Color.getGreen());

    // 使用线性渐变画刷填充整个图像。
    com.aspose.imaging.Graphics gr = new com.aspose.imaging.Graphics(bmpImage);
    gr.fillRectangle(brush, bmpImage.getBounds());

    // 获取最接近的 8 位颜色调色板,覆盖尽可能多的像素,以便调色板图像
    // 几乎在视觉上与非调色板图像无法区分。
    com.aspose.imaging.IColorPalette palette = com.aspose.imaging.ColorPaletteHelper.getCloseImagePalette(bmpImage, 256);

    // 8 位调色板最多包含 256 种颜色。
    com.aspose.imaging.imageoptions.BmpOptions saveOptions = new com.aspose.imaging.imageoptions.BmpOptions();
    saveOptions.setPalette(palette);
    saveOptions.setBitsPerPixel(8);

    java.io.ByteArrayOutputStream stream = new java.io.ByteArrayOutputStream();
    try {
        bmpImage.save(stream, saveOptions);
        System.out.println("The palettized image size is " + stream.size() + " bytes.");
    } finally {
        stream.close();
    }

    stream = new java.io.ByteArrayOutputStream();
    try {
        bmpImage.save(stream);
        System.out.println("The non-palettized image size is " + stream.size() + " bytes.");
    } finally {
        stream.close();
    }
} finally {
    bmpImage.dispose();
}

// 输出如下:
// 调色板化的图像大小为 11078 字节。
// 非调色板化的图像大小为 40054 字节。

getResolutionSettings()

public ResolutionSetting getResolutionSettings()

获取分辨率设置。

Returns: ResolutionSetting

setResolutionSettings(ResolutionSetting value)

public void setResolutionSettings(ResolutionSetting value)

设置分辨率设置。

Parameters:

参数类型描述
valueResolutionSetting

Example: The following example loads a BMP image and saves it to JPEG using various save options.

String dir = "c:\\temp\\";

// 从文件加载 BMP 图像。
com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.bmp");
try {
    // 进行一些图像处理。

    // 使用其他选项来指定所需的图像参数。
    com.aspose.imaging.imageoptions.JpegOptions saveOptions = new com.aspose.imaging.imageoptions.JpegOptions();

    // 每个通道的位数为 8。
    // 使用调色板时,颜色索引存储在图像数据中,而不是颜色本身。
    saveOptions.setBitsPerChannel((byte) 8);

    // 设置渐进式压缩类型。
    saveOptions.setCompressionType(com.aspose.imaging.fileformats.jpeg.JpegCompressionMode.Progressive);

    // 设置图像质量。取值范围为 1 到 100。
    saveOptions.setQuality(100);

    // 将水平/垂直分辨率设置为每英寸 96 点。
    saveOptions.setResolutionSettings(new com.aspose.imaging.ResolutionSetting(96.0, 96.0));
    saveOptions.setResolutionUnit(com.aspose.imaging.ResolutionUnit.Inch);

    // 如果源图像为彩色,则会转换为灰度。
    saveOptions.setColorType(com.aspose.imaging.fileformats.jpeg.JpegCompressionColorMode.Grayscale);

    // 使用调色板来减小输出大小。
    saveOptions.setPalette(com.aspose.imaging.ColorPaletteHelper.create8BitGrayscale(false));

    image.save(dir + "sample.palettized.jpg", saveOptions);
} finally {
    image.dispose();
}

getVectorRasterizationOptions()

public VectorRasterizationOptions getVectorRasterizationOptions()

获取矢量光栅化选项。

Returns: VectorRasterizationOptions - The vector rasterization options.

setVectorRasterizationOptions(VectorRasterizationOptions value)

public void setVectorRasterizationOptions(VectorRasterizationOptions value)

设置矢量光栅化选项。

Parameters:

参数类型描述
valueVectorRasterizationOptions矢量光栅化选项。

getBufferSizeHint()

public final int getBufferSizeHint()

获取缓冲区大小提示,该提示定义了所有内部缓冲区的最大允许大小。

值:缓冲区大小提示(单位:兆字节)。非正值表示内部缓冲区没有内存限制

Returns: int - 缓冲区大小提示,定义为所有内部缓冲区的最大允许大小。

setBufferSizeHint(int value)

public final void setBufferSizeHint(int value)

设置缓冲区大小提示,该提示定义了所有内部缓冲区的最大允许大小。

值:缓冲区大小提示(单位:兆字节)。非正值表示内部缓冲区没有内存限制

Parameters:

参数类型描述
valueint缓冲区大小提示,定义为所有内部缓冲区的最大允许大小。

getMultiPageOptions()

public MultiPageOptions getMultiPageOptions()

多页选项

Returns: MultiPageOptions

setMultiPageOptions(MultiPageOptions value)

public void setMultiPageOptions(MultiPageOptions value)

多页选项

Parameters:

参数类型描述
valueMultiPageOptions

getFullFrame()

public final boolean getFullFrame()

获取指示是否为 [full frame] 的值。

值:如果是 [full frame] 则为 true;否则为 false

Returns: boolean - 表示是否为 [full frame] 的值。

setFullFrame(boolean value)

public final void setFullFrame(boolean value)

设置指示是否为 [full frame] 的值。

值:如果是 [full frame] 则为 true;否则为 false

Parameters:

参数类型描述
valueboolean指示是否为 [full frame] 的值。

getProgressEventHandler()

public ProgressEventHandler getProgressEventHandler()

获取进度事件处理程序。

值:进度事件处理程序。

Returns: ProgressEventHandler - the progress event handler.

setProgressEventHandler(ProgressEventHandler value)

public void setProgressEventHandler(ProgressEventHandler value)

设置进度事件处理程序。

值:进度事件处理程序。

Parameters:

参数类型描述
valueProgressEventHandler进度事件处理程序。

Example: The following example shows how to print information about progress events for load/export operations.

String dir = "c:\\aspose.imaging\\java\\issues\\1440\\";
String fileName = dir + "big.png";

// 示例:在加载/导出操作中使用独立的操作进度事件处理程序
final com.aspose.imaging.ProgressEventHandler loadHandler = new com.aspose.imaging.ProgressEventHandler() {
    @Override
    public void invoke(com.aspose.imaging.progressmanagement.ProgressEventHandlerInfo info) {
        System.out.format("Load event %s : %d/%d\n", com.aspose.imaging.progressmanagement.EventType.toString(com.aspose.imaging.progressmanagement.EventType.class, info.getEventType()), info.getValue(), info.getMaxValue());
    }
};

final com.aspose.imaging.ProgressEventHandler exportHandler = new com.aspose.imaging.ProgressEventHandler() {
    @Override
    public void invoke(com.aspose.imaging.progressmanagement.ProgressEventHandlerInfo info) {
        System.out.format("Export event %s : %d/%d\n", com.aspose.imaging.progressmanagement.EventType.toString(com.aspose.imaging.progressmanagement.EventType.class, info.getEventType()), info.getValue(), info.getMaxValue());
    }
};

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(fileName, new com.aspose.imaging.LoadOptions() {{ setProgressEventHandler(loadHandler); }} );
try {
    image.save(fileName + ".psd",
            new com.aspose.imaging.imageoptions.PsdOptions() {{ setProgressEventHandler( exportHandler); }});
}
finally {
    image.close();
}

// STDOUT 日志可能如下所示:
//        加载事件 初始化 : 1/4
//        加载事件 预处理 : 2/4
//        加载事件 处理 : 3/4
//        加载事件 完成 : 4/4
//        导出事件 初始化 : 1/4
//        导出事件 预处理 : 2/4
//        导出事件 处理 : 3/4
//        导出事件 相对进度 : 1/1
//        加载事件 相对进度 : 1/1
//        导出事件 完成 : 4/4

deepClone()

public ImageOptionsBase deepClone()

克隆此实例。

Returns: ImageOptionsBase - Returns shallow copy of this instance

trySetMetadata(IImageMetadataFormat metadata)

public final boolean trySetMetadata(IImageMetadataFormat metadata)

尝试设置一个 metadata 实例,如果此 Image 实例支持并实现 IImageMetadataFormat 实例。

Parameters:

参数类型描述
metadataIImageMetadataFormat元数据。

Returns: boolean - 如果 IMetadataContainer 实例支持和/或实现 IImageMetadataFormat 实例,则为 True;否则为 false。