Как нарисовать растровое изображение с помощью Scala? - PullRequest
4 голосов
/ 19 января 2011

Я хотел бы нарисовать растровое изображение, вручную указав цвет каждой его точки (другими словами, задача состоит в том, чтобы сохранить двумерный массив значений RGB в файл PNG (или другой формат растрового изображения без потерь)).

Было бы также неплохо иметь функцию для печати фрагментов текста (с заданным шрифтом заданного размера) поверх изображения с заданными координатами.

Как реализоватьэто?

Ответы [ 2 ]

7 голосов
/ 20 января 2011

Вы можете использовать стандартную библиотеку Java ImageIO класс. Он предлагает статический метод write, который может, например, кодировать и записывать RenderedImage в выходной поток в формате PNG. Для RenderedImage вы можете легко использовать класс BufferedImage. Он предлагает setRGB метод для непосредственного управления цветами отдельных пикселей. В качестве альтернативы, вы также можете вызвать BufferedImage.getGraphics(), который возвращает экземпляр Graphics, на котором вы можете рисовать любой вид фигуры или текста, или даже целые компоненты GUI, точно так же, как с любым компонентом AWT.

Это обычный Java-материал. Scala не предлагает никаких специальных упаковщиков для этого, и я также сомневаюсь, что это стоило бы усилий.

2 голосов
/ 19 января 2011

Вы должны использовать библиотеку Java, такую ​​как Java Advanced Imaging API . Это хорошо задокументировано.

...