Існуе шмат спецыяльных праграм, каб пераўтварыць выяву ў зыходны код. Адна з іх LCD Image Converter, напрыклад.
Нашчасце, гэта праблема існуе доўгі час і была вырашана радыкальным спосабам. Навошта пераўтвараць малюнкі ў зыходны код? Лепей захоўваць малюнкі адразу ў форме зыходнага коду. Для гэтай мэты быў створаны фармат XBM (X BitMap), а таксама некаторыя іншыя, аднак XBM нас цікавіць зараз болей за іншыя.
Разгледзім паслядоўнасць дзеяў у GIMP каб стварыць малюнак для ЖКІ Sharp LS013B4DN04, прадстаўніка сямейства Sharp Memory LCD з малым спажываннем току.
1. Стварыць малюнак патрэбнага памеру:
Нам патрэбен памер 96 на 96 піксэляў, белы колер асновы (Fill with: White) і чорна-белая палітра (Color space: Grayscale).
2. Выбраць самую маленькую кісць і намаляваць што-небудзь (можна карыстацца усёй моцай графічнага рэдактара)
Калі патрэбна дапаможная сетка, уключыць яе можна ў мяню View -> Show Grid
3. Калі ў ходзе малявання ў вас з'явіліся іншыя колеры, акрамя чорнага і белага, трэба іх ператварыць у чорны ці белы. Гэта проста зрабіць пры дапамозе змены рэжыму Image -> Mode -> Indexed...
Патрэбна аднабітная палітра (black and white (1-bit) palette). Ёсць некалькі алгарытмаў пераўтварэння (Color dithering), паспрабуйце розныя і вызначце той, што спадабаецца вам больш за ўсё.
4. Далей захоўваем малюнак у фармаце XBM
5. Пры экспарце увядзіце імя масіва ў якім будзе малюнак (Identifier prefix)
6. Карыстацца :-) Канчатковы файл уяўляе з сабе зыходны код на мове праграмавання Сі. Ён змяшчае два макраса с памерамі малюнка, а таксама масіў, у якім кожны байт адпавядае 8 кропкам у радку.
#define lcd_gimp_width 96
#define lcd_gimp_height 96
static unsigned char lcd_gimp_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
...
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
Такім чынам, для малюнка 96 на 96, радок складаецца з 12 байтаў, далей ідуць байты наступнага радка. Гэта значыць, што байты з 0 па 11 дапавядаюць першаму радку на экране індыкатара, з 12 па 23 другому і гэтак далей.
Што атрымалася ў выніку можна пабачыць у пачатку артыкула.
Цікава, але не практычна :)
ОтветитьУдалить1. У апісанай вамі паслядоўнасці дзеянняў занадта шмат крокаў.
2. Гэта прыдатна толькі для могохромных малюнкаў.
3. У шрыфты могуць быць сотні знакаў. Замардуюць...
Выбачайце за якасць перакладу.
Згодны з вамі на 100%. Для аднаго-двух малюнкаў можна і так зрабіць.
УдалитьМне здаецца, што патрэба ў графічных шрыфтах для розных моваў зараз стаіць асабліва востра. Асабліва гэта тычыцца азіяцкіх моваў. Даволі цікавае радыкальнае рашэнне - спецыяльныя м/с слоўнікі-алфавіты, яны выдаюць малюнак літары/іерогліфа па коду сімвала Unicode (або іншай кадзіроўкі).
Прыклад: http://www.genitop.com/Products/index.html
Маленькая мікрасхема ў корпусе SOT23-6 змяшчае больш сімвалаў чым здолее МК.
Хм, не ведаў пра такое.
УдалитьУ прынцыпе, такое можна ажыццявіць і на мікракантролеры, з дастатковай вонкавай памяццю, але занадта шмат знакаў трэба маляваць / правяраць.
Дзякуй за інфармацыю :)
You really make it seem so easy with your presentation but I find this topic to be actually something which I think I would never understand. It seems too complicated and very broad for me. I’m looking forward for your next post, I will try to get the hang of it! toko perhiasan surabaya
ОтветитьУдалитьHelⅼo there! This агticlе couldn’t bee written anyy Ƅetter! Looking thrоuցh this post rminds me of my preѵioᥙs roommate! He aⅼwags kept preachіng about this. I am gօing to forward this post to him. Fairly certain he will have a very good read. Many thanks fⲟr sharing! My web page – daftar situs slot gacor
ОтветитьУдалитьThank you for provide us very important information we are pleased to read this article.
ОтветитьУдалитьslot gacor