Как прочитать простое изображение xpm и отобразить его с помощью Java? - PullRequest
0 голосов
/ 02 февраля 2011

Мне поручено создать простую программу просмотра изображений xpm.Я не могу использовать любую существующую библиотеку инструментария для этого.Я знаю, что xpm-изображения - это строковый массив, подобный этому (я могу написать одно) -

/* XPM */
static const char *const hi[] = {
"7 5 2 1",
"  c black",
". c yellow",

"..   ..",
". . . .",
".  .  .",
".     .",
".     ."
};

Я хочу использовать для этого Java.Мой вопрос -
1. Как сделать строковую переменную (hi []) из этого файла xpm, чтобы я мог использовать ее в своем основном классе?
2. Хороший способ отобразить ее в графическом интерфейсе?1006 * 3. Любая другая диктовка ...

Большое спасибо за вашу помощь

Ответы [ 2 ]

2 голосов
/ 02 февраля 2011

Сначала вам нужно написать синтаксический анализатор - программу / метод / класс / все, что читает этот файл построчно и извлечь необходимые данные.

BufferedReader r =
    new BufferedReader(new InputStreamReader(new FileInputStream(file),
                                             "US-ASCII"));

дает вам BufferedReader, который имеет метод readLine (). Первые несколько строк вы выбрасываете или обрабатываете специально, а затем основной набор строк - это данные реального изображения. Там вы выбрасываете кавычки и запятые и получаете простые данные в виде строки.

Чтобы поместить его в изображение, посмотрите на классы в java.awt.image - особенно BufferedImage и используемые им классы (Raster / WriteableRaster, IndexColorModel).

Вместо этого вы также можете просто хранить данные в форме String [] и в методе рисования пользовательского компонента получать доступ к отдельным пикселям. Думаю, это будет немного медленнее.

1 голос
/ 02 февраля 2011

Не знаю, сработает ли это для вас: http://www.bolthole.com/java/Xpm.html, но я считаю, что после его преобразования в образ Java вы сможете делать все, что захотите в Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...