В моем приложении eclipse-rcp мне нужно создать изображение размером 30000x10000 или более. Это изображение NatTable Представление. Используя стандартный подход к созданию образа, он терпит неудачу с различными проблемами: OutOfMemory, SWTError - IllegalArgument или мой компьютер перестает отвечать (кстати, его Windows 7, 64bit, 4 RAM - клиент имеют гораздо более медленные ноутбуки, но изображение все равно необходимо создать) , Ниже приведен фрагмент кода:Как создать большой SWT-образ?
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 подходящей для этой цели?
Любые предложения приветствуются.
Итак, вы хотите сохранить таблицу в файл изображения ..? – Sorceror
Эта статья всегда помогала мне, когда я искал некоторые проблемы с изображениями - [Ресурсы изображения SWT] (http://www.eclipse.org/articles/Article-SWT-images/graphics-resources.html) – Sorceror
Благодарим вас за статью, я обязательно посмотрю на это. Нет, мне не нужно сохранять таблицу в файл, мне действительно нужно получить объект ImageData, чтобы печатать NatTable с помощью PaperClips ImagePrint. В основном, мне нужно распечатать таблицу. –