Генератор изображений (устарела)

Перейти к новой версии статьи и программы.

Данная программа предназначена для генерации массива изображения для графических дисплеев. Она может генерировать изображения кратные 4х8, максимального размера 84х48.

Выведенное изображение (дисплей nokia3310)

Выведенное изображение (дисплей nokia3310)

В более ранних статьях был рассмотрено, как работать с графическим дисплеем от нокии 3310, также была размещена программа для генерации шрифтов. Но этот дисплей в первую очередь графический и не рассмотреть, как можно вывести на него картинку – это не раскрыть большую часть его потенциала. Для восполнения пробела была написана небольшая программа для генерации массива, содержащего изображение, для последующего вывода на дисплей.

Рабочая область программы поделена на 3 части: редактор рисунка, конечный массив изображения и вставка изображения.

Последняя вкладка программы содержит средства для вставки точечного рисунка (*.bmp). Размеры конечного изображения задаются на первой вкладке. Ползунок «граница чёрного и белого» позволяет выбрать точку перехода этих цветов при преобразовании рисунка в монохромный. После нажатия кнопки «применить» картинка будет отправлен в редактор рисунка.

Добавление изображения

Добавление изображения

Редактор рисунка позволяет посредством мыши рисовать и (или) редактировать изображение, также иметься уменьшенная его копия для наглядности. Для большей универсальности программы – она позволяет задавать размер изображения кратный 4х8 с максимальным разрешением 84х48. После того как рисунок будет готов достаточно нажать на кнопку «Получить массив», как программа сгенерирует массив, содержащий изображение, готовое к вставке в прошивку.

Редактор рисунка

Редактор рисунка

Ниже приведён кусок программы, содержащий массив с рисунком, рассмотренном в примере, и код для его вывода на дисплей.

static const char lcd_image_mas[504] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80,
0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x1C,
0x1C, 0x1C, 0x3C, 0x3C, 0x3C, 0x38, 0x7C, 0x78, 0xF8, 0xF8, 0xF8, 0xF8,
0xE0, 0xF0, 0xF0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, 0xF8, 0xF8,
0xF8, 0xFC, 0xFC, 0xFC, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x7F, 0x3F, 0x0F, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
0x03, 0x03, 0x07, 0x07, 0x0F, 0x0F, 0x0F, 0x1F, 0x1F, 0x3F, 0x3F, 0x7F,
0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x1F, 0x1F,
0x1F, 0x3F, 0x3F, 0x3F, 0x1F, 0x0F, 0x07, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x03, 0x07, 0x1F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0x1F, 0x17, 0x17, 0x37,
0xF7, 0xF7, 0xFF, 0xEF, 0xEF, 0xFF, 0xEF, 0xAF, 0x17, 0x07, 0x04, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3E, 0x2A, 0x3E, 0x00, 0x0E, 0x08, 0x3C, 0x00,
0x14, 0x08, 0x14, 0x00, 0x0E, 0x08, 0x3C, 0x00, 0x3E, 0x2A, 0x3E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x03, 0x0F, 0x1F, 0x3F, 0xF7,
0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x03, 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x14, 0x14, 0x7C,
0x00, 0x7C, 0x40, 0x40, 0x00, 0x7C, 0x54, 0x44, 0x00, 0x6C, 0x10, 0x6C,
0x00, 0x10, 0x10, 0x10, 0x00, 0x7C, 0x54, 0x44, 0x00, 0x6C, 0x10, 0x6C,
0x00, 0x7C, 0x54, 0x45, 0x01, 0x40, 0x00, 0x7C, 0x08, 0x10, 0x20, 0x7C,
0x00, 0x7C, 0x54, 0x44, 0x00, 0x04, 0x04, 0x7C, 0x04, 0x04, 0x00, 0x40,
0x00, 0x7C, 0x14, 0x28, 0x40, 0x00, 0x3C, 0x40, 0x40, 0x7C, 0x40, 0x00};

void lcd_image()
{
	char x,y;
	for(y=0;y < 6;y++)
	{
		lcd_gotoxy(0,y);
		for(x=0;x < 84;x++)
		lcd_send(lcd_image_mas[y*84+x], LCD_TDATA);
	}
}

Если размеры изображения будут отличаться от 84х48 – в функции lcd_image() нужно будет указать своё количество точек по горизонтали и количество линий по вертикали.

Скачать рассмотренный пример (исходник и прошивку)

Скачать программу Image generate

5 комментариев »

Alex_EXE | 14.01.2011 | Программы | 7 107 просмотров

5 комментариев на « Генератор изображений (устарела)»

  1. Андрей пишет 21.09.2011 в 15:21 #

    Спасибо за программу! Очень помогла!

  2. Alex_EXE пишет 24.11.2011 в 00:30 #

    Для тех, у кого проблемы со скачиванием файлов.
    Архив скачивается с сайта нормально, не битый, если возникают ошибки при распаковки, попробуйте обновить архиватор.

  3. Павел пишет 03.12.2011 в 12:55 #

    Добрый день. Пользуюсь активно Вашей программкой — очень доволен. Реально удобно. Есть только одна просьба, в последнее время чаше начал использовать LCD от 1110, а она 96х68(и думаю не я один). Возможно ли расширить пределы? Спасибо.

  4. Alex_EXE пишет 04.12.2011 в 00:06 #

    Расширить функционал программы можно, начало положено, но когда будет конец, точно пока сказать не могу.

  5. Павел пишет 05.12.2011 в 02:21 #

    Лиха беда-начало. 🙂 Будем ждать с нетерпением.Спасибо.

Комментарии RSS

Оставьте отзыв