Как создать большое изображение SWT? - PullRequest
5 голосов
/ 03 февраля 2012

В моем приложении eclipse-rcp мне нужно создать изображение размером 30000x10000 px или более. Это изображение NatTable представление. При использовании стандартного подхода к созданию изображений это дает сбой из-за различных проблем: OutOfMemory, SWTError - IllegalArgument или мой компьютер перестает отвечать на запросы (кстати, его Windows 7, 64-битная, 4 ОЗУ - у клиента гораздо более медленные ноутбуки, но изображение все еще нужно создавать) , Вот фрагмент кода:

private Image getNattableImageRepresentation(final Display display) {
        final Rectangle totalGridArea = getTotalGridArea(); //this returns Rectangle(0,0,30000,10000)
        setGridLayerSize(totalGridArea);
        final Image nattableImage = new Image(display, totalGridArea);
        final GC nattableGC = new GC(nattableImage);
        gridLayer.getLayerPainter().paintLayer(gridLayer, nattableGC, 0, 0, totalGridArea, configRegistry);//nattable API, which draws an image into a specified gc
        restoreGridLayerState();
        return nattableImage;
    }
    return null;
}

Есть ли уловки для создания таких огромных изображений или может быть API? Подходит ли Java Advanced Imaging Api для этой цели?

Любые предложения приветствуются.

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

ImageMagick - это отличный инструмент для обработки изображений, как этот ... новая компьютерная графика - не тот путь, безусловно .. Если вы объедините все запасные изображения с большим, проблем быть не должно ..

0 голосов
/ 08 ноября 2018

Существует простое решение для хранения больших изображений в Java. BigBufferedImage хранит изображение на жестком диске очень быстро:

https://stackoverflow.com/a/53205617/2631710

...