DataStreamSupporter

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

public abstract class DataStreamSupporter extends DisposableObject

数据流容器。

方法

方法描述
getDataStreamContainer()获取对象的数据流。
isCached()获取一个值,指示对象的数据当前是否已缓存且无需读取数据。
cacheData()缓存数据,并确保不会从底层 DataStreamSupporter.DataStreamContainer 再进行额外的数据加载。
save()将对象的数据保存到当前的 DataStreamSupporter
save(OutputStream stream)将对象的数据保存到指定的流。
save(RandomAccessFile file)将对象的数据保存到指定的流。
save(String filePath)将对象的数据保存到指定的文件位置。
save(String filePath, boolean overWrite)将对象的数据保存到指定的文件位置。

getDataStreamContainer()

public StreamContainer getDataStreamContainer()

获取对象的数据流。

Returns: StreamContainer - The object’s data stream.

isCached()

public abstract boolean isCached()

获取一个值,指示对象的数据当前是否已缓存且无需读取数据。

Returns: boolean - 一个值,指示对象的数据当前是否已缓存且无需读取数据。

cacheData()

public abstract void cacheData()

缓存数据,并确保不会从底层 DataStreamSupporter.DataStreamContainer 再进行额外的数据加载。

Example: The following example shows how image caching affects performance. 以下示例展示了图像缓存如何影响性能。一般情况下,读取缓存数据的速度快于读取非缓存数据。

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

// 从 PNG 文件加载图像。
com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.png");
try {
    // 缓存所有像素数据,以便不再从底层数据流进行额外的数据加载
    image.cacheData();

    long startTime = System.currentTimeMillis();

    // 读取所有像素相当快。
    com.aspose.imaging.RasterImage rasterImage = (com.aspose.imaging.RasterImage) image;
    for (int y = 0; y < image.getHeight(); y++) {
        for (int x = 0; x < image.getWidth(); x++) {
            int color = rasterImage.getArgb32Pixel(x, y);
        }
    }

    long stopTime = System.currentTimeMillis();
    long elapsedTime = stopTime - startTime;
    System.out.println("Reading all cached pixels took " + elapsedTime + " ms.");
} finally {
    image.dispose();
}

// 从 PNG 文件加载图像
image = com.aspose.imaging.Image.load(dir + "sample.png");
try {
    long startTime = System.currentTimeMillis();

    // 读取所有像素的速度不如缓存时快
    com.aspose.imaging.RasterImage rasterImage = (com.aspose.imaging.RasterImage) image;
    for (int y = 0; y < image.getHeight(); y++) {
        for (int x = 0; x < image.getWidth(); x++) {
            int color = rasterImage.getArgb32Pixel(x, y);
        }
    }

    long stopTime = System.currentTimeMillis();
    long elapsedTime = stopTime - startTime;
    System.out.println("Reading all pixels without preliminary caching took " + elapsedTime + " ms.");
} finally {
    image.dispose();
}

// 输出可能如下所示:
//读取所有缓存像素耗时 2954 毫秒。
//    java.lang.OutOfMemoryError
//at com.aspose.imaging.internal.G.be.b(Unknown Source)
//at com.aspose.imaging.internal.G.be.a(Unknown Source)
//at com.aspose.imaging.internal.G.be.a(Unknown Source)
//at com.aspose.imaging.internal.G.be.a(Unknown Source)
//at com.aspose.imaging.internal.G.aB.a(Unknown Source)
//at com.aspose.imaging.RasterImage.a(Unknown Source)
//at com.aspose.imaging.RasterImage.getArgb32Pixel(Unknown Source)
//位于 com.aspose.examples.ExamplesTest.Test(ExamplesTest.java:58)

save()

public void save()

将对象的数据保存到当前的 DataStreamSupporter

save(OutputStream stream)

public void save(OutputStream stream)

将对象的数据保存到指定的流。

Parameters:

参数类型描述
java.io.OutputStream用于保存对象数据的流。

save(RandomAccessFile file)

public void save(RandomAccessFile file)

将对象的数据保存到指定的流。

Parameters:

参数类型描述
文件java.io.RandomAccessFile用于保存对象数据的流。

save(String filePath)

public void save(String filePath)

将对象的数据保存到指定的文件位置。

Parameters:

参数类型描述
filePathjava.lang.String用于保存对象数据的文件路径。

save(String filePath, boolean overWrite)

public void save(String filePath, boolean overWrite)

将对象的数据保存到指定的文件位置。

Parameters:

参数类型描述
filePathjava.lang.String用于保存对象数据的文件路径。
overWriteboolean如果设置为 true 则覆盖文件内容,否则将追加。