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)
//at com.aspose.examples.ExamplesTest.Test(ExamplesTest.java:58)

save()

public void save()

Сохраняет данные объекта в текущий DataStreamSupporter.

save(OutputStream stream)

public void save(OutputStream stream)

Сохраняет данные объекта в указанный поток.

Parameters:

ПараметрТипОписание
streamjava.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, перезаписать содержимое файла, иначе будет выполнено добавление.