Editor grafis untuk tampilan LCD. Editor font bitmap untuk tampilan grafis

Artikel ini membahas metode pembuatan sederhana font bitmap, dimaksudkan untuk ditampilkan pada indikator grafis (seperti, misalnya, WG240128A-FFH-V atau layar dari NOKIA6610 - Epson S1D15G00).

Singkatnya, metode utama yang saya ketahui adalah:
1. Gunakan programnya Pembuat BitFont Pro 2.3. Memungkinkan Anda membuat font bitmap dari font bawaan Windows.
2. Gambarlah karakter dalam editor grafis dalam bentuk gambar bmp lalu ubah menjadi C-buang atau pembuangan ASM(untuk menyelipkannya ke kompiler).

[BitFontCreator Pro 2.3]

Program ini intuitif dan memungkinkan Anda mengimpor Tipe Sejati dan font bitmap jendela, konversikan ke dump ASM atau C, ekspor font ke satu set BMP-gambar. Proses pembuatan font melibatkan 5 langkah standar (diwakili dalam menu dengan tombol) - mengimpor font (di sini Anda memilih font Windows), mengedit tabel karakter (mengedit tabel karakter dan gambar karakter - jika perlu), mengkonfigurasi format data ( ubah metode yang digunakan untuk informasi grafis yang didistribusikan melalui byte generator karakter), ekspor data bitmap (Anda mendapatkan dump teks dari generator karakter, yang dapat dimasukkan ke kompiler). Beberapa catatan tentang penggunaan program ini:

1 . Jika program ini tidak berlisensi, maka ketidaknyamanan tertentu menanti Anda - setengah karakter dari font diwakili oleh dump kosong. Oleh karena itu, untuk menghasilkan dump untuk semua simbol dalam tabel, Anda harus menyimpang - membuang simbol di beberapa bagian, menghapus dari tabel simbol simbol-simbol yang dumpnya telah Anda terima. Dalam hal ini, “kekosongan” dalam tabel simbol digeser, dan Anda mendapat kesempatan untuk membuang simbol yang tersisa (yang sebelumnya rusak dan kosong).

2 . Paling mudah menggunakan font proporsional - font dengan lebar konstan, karena lebih mudah bagi mereka untuk menulis perangkat lunak yang menampilkan karakter pada indikator grafik. Font proporsional mencakup, misalnya, Kurir Baru Dan Terminal(sayangnya, font Terminal tidak di-Russified, tetapi fontnya paling kecil dari yang proporsional). Kerugian dari font proporsional adalah jelek dan tidak kompak, dan banyak ruang kosong yang berharga di layar akan terbuang sia-sia. Di antara font dengan lebar variabel, ada baiknya untuk melihat lebih dekat MS Serif Dan Font Kecil- awalnya dirancang untuk ukuran kecil.

3 . Karena layar pada perangkat dengan mikrokontroler biasanya berukuran kecil, Anda harus memilih ukuran terkecil 8 untuk font yang diimpor (terkadang Anda dapat memilih 6 atau bahkan 5).

4 . Lebih baik memilih pengkodean karakter standar ANSI Windows 1251(nyaman digunakan karena memungkinkan Anda menggunakan konstanta string dalam bahasa Rusia di lingkungan pemrograman IAR Embedded Workbench). Ini dia:

kode karakter kode karakter kode karakter kode karakter
00
01
02
03
04
05
06
07
08 "BS"
09
0a "LF"
0b
0c
0d "CR"
0e
0f
10
11
12
13
14
15
16
17
18
19
1a
1b
1c
1d
1e
1f
20 " "
21 "!"
22 """
23 "#"
24 "$"
25 "%"
26 "&"
27 """
28 "("
29 ")"
2a "*"
2b "+"
2c ","
2d "-"
2e "."
2f "/"
30 "0"
31 "1"
32 "2"
33 "3"
34 "4"
35 "5"
36 "6"
37 "7"
38 "8"
39 "9"
3a ":"
3b ";"
3c"<"
3d "="
3e ">"
3f "?"
40 "@"
41 "A"
42 "B"
43 "C"
44 "D"
45 "E"
46 "P"
47 "G"
48 "H"
49 "Aku"
4a "J"
4b "K"
4c "L"
4d "M"
4e "T"
4f "HAI"
50 "P"
51 "Pertanyaan"
52 "R"
53 "S"
54 "T"
55 "kamu"
56"V"
57 "W"
58"X"
59 "kamu"
5a "Z"
5b "["
5c "\"
5d "]"
5e "^"
5f "_"
60 "`"
61 "sebuah"
62"b"
63"c"
64"d"
65 "e"
66"f"
67"g"
68"j"
69 "aku"
6a "j"
6b "k"
6c "aku"
6d "m"
6e "n"
6f "o"
70 "p"
71 "q"
72"r"
73"
74 "t"
75 "kamu"
76"v"
77"w"
78"x"
79"kamu"
7a "z"
7b "("
7c "|"
7d ")"
7e "~"
7f " "
80 "Ђ"
81 "Ѓ"
82 "‚"
83 "ѓ"
84 "„"
85 "…"
86 "†"
87 "‡"
88 "€"
89"‰"
8a "E"
8b "‹"
8c "Њ"
8d "Ќ"
8e "Ћ"
8f "Џ"
90 "ђ"
91 "‘"
92 "’"
93 "“"
94 "”"
95 "."
96 "-"
97 "—"
98"
99 "™"
9a "љ"
9b "›"
9c "њ"
9d "ќ"
9e "ћ"
9f "џ"
a0 " "
a1 "Ў"
a2 "ў"
a3 "Ј"
a4 "¤"
a5 "¬"
a6 "¦"
a7 "§"
a8 "Yo"
a9 " "
aa "Є"
tentang """
ac "¬"
iklan "-"
ae "®"
af "Ї"
b0 "°"
b1 "±"
b2 "Aku"
b3 "aku"
b4 "¬"
b5 "µ"
b6 "¶"
b7 "·"
b8 "е"
b9 "Tidak"
ba "є"
bb"""
SM "ј"
bd "S"
menjadi "s"
bf "ї"
c0 "A"
c1 "B"
c2 "B"
c3 "G"
c4 "D"
c5 "E"
c6 "W"
c7 "Z"
c8 "Aku"
c9 "kamu"
ca "K"
cb "L"
cc "M"
CD "H"
ce "O"
lih "P"
d0 "P"
d1 "C"
d2 "T"
d3 "kamu"
d4 "F"
d5 "X"
d6 "C"
d7 "H"
d8 "W"
d9 "Ш"
da "b"
db "kamu"
dc "b"
hh "E"
de "Yu"
df "aku"
e0 "sebuah"
e1 "b"
e2 "masuk"
e3 "g"
e4 "d"
e5 "e"
e6 "w"
e7 "z"
e8 "dan"
e9 "th"
ya "ke"
eb "aku"
ec "m"
ed "n"
ee "o"
ef "p"
f0 "p"
f1 "c"
f2 "t"
f3 "kamu"
f4 "f"
f5 "x"
f6 "ts"
f7 "h"
f8 "w"
f9 "kamu"
fa "b"
fb "s"
fc "b"
fd "eh"
fe "kamu"
ff "aku"

Pengkodean ini (ANSI Windows 1251) paling cocok karena sebagian besar program menggunakannya. Misalnya, pengkodean ini memungkinkan Anda untuk secara langsung menentukan dan menampilkan teks Rusia di dalamnya Meja Kerja Tertanam IAR.

5 . Dimungkinkan untuk mengekspor seluruh rangkaian karakter ke gambar BMP (File -> Ekspor -> File Bitmap Semua Karakter). Fitur ini bagus karena gambar semua simbol diekspor tanpa kerusakan bahkan untuk program yang tidak berlisensi (tidak ada batasan buatan seperti membuat dump teks simbol). Oleh karena itu, jika Anda memiliki bmp -> pengonversi teks (misalnya, dump teks, yang dapat dimengerti oleh kompiler C), maka pembuatan font akan sangat disederhanakan. Jika Anda terbiasa dengan pemrograman di Windows, maka Anda dapat menulis sendiri konverter tersebut, karena format BMP cukup sederhana. Saya menawarkan converter siap pakai yang saya tulis sendiri, Anda dapat mendownloadnya (beserta contoh penggunaannya).

[Menghasilkan font kecil]

Contoh menunjukkan pembuatan font digital mini, yang saya gunakan untuk menampilkan tegangan suplai perangkat di sebelah grafik "baterai" (menunjukkan status pengosongan baterai). 10 karakter font (angka dari 0 hingga 9) disiapkan dalam bentuk yang mudah diedit - sebagai gambar monokrom tunggal 090226small_digits.bmp (mudah diedit dengan editor grafis mspaint), dan diubah menjadi teks-C menggunakan utilitas bmptoc.exe(lihat Tautan).. TypeFace/Character Set Image Data - bekerja dengan font untuk mikrokontroler.
5 . Ekstraktor Charset dari Gambar.
6 . Antarmuka pengguna grafis menggunakan mikrokontroler Microchip.
7 . IAR EW ARM: cara mengarahkan output printf dan putchar (artikel menjelaskan contoh menghubungkan indikator LCD Winstar WG240 128B dengan rangkaian dan sumber).
8 . Utilitas bmptoc.exe untuk mengonversi gambar BMP dan file biner menjadi dump C (bersama dengan sumbernya).

  • X— koordinat x sudut kiri gambar.
  • kamu— koordinat y sudut kiri gambar.
  • x1— ukuran gambar dalam x.
  • kamu2— ukuran gambar dalam y.
  • nama— nama file array, yang terletak di folder perpustakaan.
  • 1 — skala gambar.

Ada program untuk membuat file dengan array Pengonversi Gambar565 yang merupakan bagian dari perpustakaan dan terletak di folder Tools. Mari kita luncurkan programnya dan mencoba membuat filenya sendiri; misalnya, Anda dapat menggunakan ikon saya.

Hasilnya, kita akan menerima file dengan array. Yang perlu dideklarasikan di awal sketsa dengan cara yang sama seperti font:

eksternal yang tidak ditandatangani int test54111 // Sangat penting untuk menulis ukuran array ( 0xD16) yang dapat dilihat di file.

FONT:

Secara default, tiga font tersedia untuk kami Font Kecil , Font Besar Dan TujuhSegNumFont. Pada dasarnya ini adalah array data yang sama yang terdapat dalam file DefaultFonts.

Untuk menambah atau mengganti font, kita perlu menambahkan array font baru ke file ini. Anda dapat mengambil font yang sudah jadi (http://rinkydinkelectronics.com/r_fonts.php) atau membuatnya sendiri. Jangan lupa bahwa setiap font memakan memori, dan ini sama sekali bukan karet.

Bagaimana cara membuat font Anda sendiri? Saya tidak keberatan menjelaskan prosesnya sendiri di sini. Saya hanya akan memberikan dua tautan ke artikel bagus tentang topik ini: Cara membuat font Anda sendiri untuk tampilan TFT, Russifikasi perpustakaan UTFT - bagian 1: SmallFont.

Saya akan sangat senang jika Anda terkirim Saya ingin font saya. Saya akan mempostingnya di situs)))


Dalam beberapa tahun terakhir, amatir radio semakin banyak menggunakan LCD grafis dalam desain mereka untuk menampilkan informasi. Fitur dari sebagian besar perangkat ini adalah adanya generator karakter yang dimuat sebagian atau seluruhnya oleh perangkat kontrol eksternal, atau tidak adanya generator karakter sama sekali. Dalam kasus pertama, saat menginisialisasi indikator, perlu memuat font (satu set gambar karakter) ke dalam memori generator karakter. Untuk menampilkan simbol di layar, program hanya mengirimkan kodenya (alamat di generator karakter) ke pengontrol LCD, dan tampilan simbol di layar disediakan oleh pengontrol LCD. Dalam kasus kedua, semua operasi yang diperlukan untuk menampilkan simbol di layar dilakukan oleh program perangkat kontrol. Seringkali, prosedur siap pakai tersedia di perpustakaan sistem pengembangan perangkat lunak.

Namun dalam kedua kasus tersebut diperlukan font eksternal. Di satu sisi, ini bagus karena memungkinkan penggunaan rangkaian karakter yang paling sesuai untuk memecahkan masalah tertentu. Namun, Anda harus mencari font yang diperlukan atau membuatnya sendiri. Ini tidak berarti bahwa file font untuk LCD grafis jarang ditemukan. Mereka mudah ditemukan di Internet, tetapi font yang ditemukan tidak selalu dapat digunakan.

Faktanya adalah bahwa pengontrol LCD yang berbeda menyebarkan gambar karakter dalam matriks keakraban dengan cara yang berbeda. Misalnya, pengontrol KS0107 (KS0108) dari indikator WG12864 memperluas byte gambar secara vertikal, seperti yang ditunjukkan pada Gambar. 1, dan pengontrol RA6963 dari indikator WG240128 berbentuk horizontal (Gbr. 2). Dalam kasus pertama, karakter R harus dijelaskan dengan urutan byte 00H, 00H, 00H, 7FH, 09H, 19H, 29H, 49H, di detik - 1EH, 11H, 11H, 1EH, 14H, 12H, 11H, 00 jam. Akibatnya, font yang disiapkan untuk LCD dengan pemindaian horizontal byte gambar karakter akan ditampilkan secara tidak benar pada indikator dengan pemindaian vertikal, dan sebaliknya.

Beras. 1. Gambaran suatu simbol dalam matriks keakraban

Beras. 2. Gambaran suatu simbol pada matriks keakraban

Dari sudut pandang pemrograman, font adalah serangkaian konstanta. Saat mengembangkan program yang menampilkan informasi pada LCD, berbagai bahasa pemrograman digunakan dengan aturan berbeda untuk mendeskripsikan array tersebut. Misalnya, dalam bahasa assembly, konstanta ditentukan oleh arahan db (define byte), dan dalam bahasa BASIC oleh operator Data. Di C, array konstanta dapat didefinisikan hanya dengan sekumpulan nilainya. Representasi bilangan heksadesimal juga berbeda. Bahasa pemrograman yang berbeda menggunakan, misalnya format 0xNN, &hNN, $NN, NNH, dengan NN adalah digit heksadesimal.

Mempertimbangkan hal di atas, kita dapat menyimpulkan bahwa menemukan file dengan font siap pakai yang sesuai bukanlah tugas yang mudah, dan jika kita memperhitungkan kemungkinan kebutuhan untuk memiliki karakter tertentu di dalamnya, tugas tersebut sering kali menjadi tidak dapat diselesaikan sama sekali. Dalam kasus seperti itu, Anda harus menyesuaikan font yang ditemukan di suatu tempat atau mengembangkan font baru dari awal. Ini dapat dilakukan dengan mudah menggunakan program khusus - yang disebut editor font.

Editor tersebut dapat ditemukan di Internet. Kelemahan utama mereka (setidaknya yang penulis bahas) adalah fokusnya yang sempit. Tampaknya program ini dikembangkan oleh seorang yang antusias untuk memecahkan masalah spesifiknya. Misalnya, satu program membuat file keluaran dalam format yang dapat dimengerti oleh satu kompiler bahasa pemrograman, sementara program lain membuat gambar karakter yang hanya cocok untuk jenis LCD tertentu. Oleh karena itu, tidak mungkin membuat font yang diinginkan sama sekali, atau file keluaran harus disesuaikan, misalnya, menggunakan editor teks, yang memakan banyak waktu dan jarang bebas dari kesalahan. Kemampuan program ini untuk mengedit font yang dibuat oleh editor lain seringkali sangat terbatas.

Program CG-Edit yang diusulkan dikembangkan oleh penulis sebagai alat yang lebih universal. Ini memungkinkan Anda untuk mengembangkan font yang baru dan benar yang dibuat sebelumnya (termasuk font "asing") dalam format yang paling umum digunakan dalam praktik radio amatir.

Dimensi keakraban berikut diperbolehkan (faktor pertama adalah jumlah piksel secara horizontal, yang kedua - secara vertikal): 6x8, 8x8, 12x16, 16x16, 16x24, 24x16, 24x24. Anda dapat mendesain dan mengedit font pada gambar positif dan negatif, dan juga mengubah arah pemindaian byte dari vertikal ke horizontal, dan sebaliknya. Informasi keluaran dapat dioptimalkan untuk digunakan dalam program bahasa assembly, berbagai versi bahasa BASIC dan C.

Program ini ditujukan untuk komputer pribadi yang menjalankan Windows versi 32 dan 64-bit. Ini terdiri dari satu file yang dapat dieksekusi CG-Edit.exe dan tidak memerlukan instalasi, mudah digunakan, dan memiliki antarmuka pengguna yang intuitif.

Setelah memulai program, jendela yang ditunjukkan pada Gambar 1 akan terbuka di layar komputer. 3. Di bagian kiri atas terdapat area untuk memilih karakter yang diedit berupa tabel, sel-selnya berisi karakter dari halaman kode Windows-1251. Hanya simbol dengan kode 20H-0FFH yang ditampilkan; area kode kontrol 0H-1FH tidak ada, karena tidak memiliki padanan grafis. Semua karakter dasar Latin, Sirilik, dan numerik terletak di luar area kode 7FH-0BFH, jadi area ini nyaman digunakan untuk membuat simbol apa pun yang diperlukan untuk menyelesaikan tugas guna menggantikan yang tersedia di sana sesuai dengan halaman kode Windows-1251.

Beras. 3. Jendela program pada layar komputer

Di sisi kanan jendela terdapat area pengeditan di mana keakraban dengan simbol yang diperlukan akan ditampilkan saat area ini kosong. Di kiri bawah terdapat tombol di layar “Buat generator karakter” dan “Impor generator karakter”. Yang pertama mengalihkan program ke mode pembuatan generator karakter baru. Ini membuka jendela untuk memasukkan parameter font yang dibuat, di mana Anda perlu memilih dari daftar ukuran ruang karakter dan arah pemindaian byte di dalamnya.

Perlu dicatat bahwa tidak semua ukuran tempat yang familier memungkinkan kedua arah pemindaian byte. Faktanya adalah bahwa program ini difokuskan pada kepadatan maksimum pengemasan informasi. Bagaimanapun, “konsumen” utama font yang dibuat dengan bantuannya adalah perangkat mikrokontroler dengan jumlah memori yang relatif kecil.

Pada Gambar. Gambar 4 menunjukkan bahwa ketika memindai satu byte secara horizontal dalam ruang biasa berukuran 6x8 piksel, hanya enam bit yang berguna digunakan, dan dua bit tetap mubazir. Secara total, gambar karakter menempati delapan byte. Dengan pemindaian vertikal (Gbr. 5), setiap kolom keakraban menempati satu byte penuh, sehingga gambar karakter hanya memerlukan enam byte. Perbedaan dua byte untuk setiap karakter font cukup signifikan, jadi di semua ruang umum yang jumlah kolomnya bukan kelipatan delapan, hanya pemindaian vertikal yang diperbolehkan.

Beras. 4. Pemindaian horizontal satu byte dalam ruang familiar dengan dimensi 6x8 px

Beras. 5. Pemindaian vertikal satu byte dalam ruang familiar dengan dimensi 6x8 px

Setelah memilih parameter font, klik tombol “Buat” di layar. Ini menutup jendela entri parameter, dan jendela utama mengambil bentuk yang ditunjukkan pada Gambar. 6.

Beras. 6. Tampilan jendela program komputer

Program ini membuat gambar generator karakter kosong di RAM komputer. Itu akan tetap kosong sampai font apa pun dari file yang ada dimuat ke dalamnya dengan mengklik tombol layar “Impor generator karakter”, atau sampai karakter Anda sendiri dibuat setelah mengklik tombol layar “Buat generator karakter”. Karakter di bidang "Pilih Karakter" tidak mencerminkan konten sebenarnya dari gambar pembuat karakter. Mereka selalu tidak berubah dan hanya berfungsi sebagai panduan. Di area pengeditan, program menampilkan gambar tempat yang familiar dengan ukuran yang dipilih.

Simbol generator karakter yang sedang dibuat atau diedit, sel yang dipilih dalam tabel “Pilih karakter” (disorot dengan latar belakang merah), ditampilkan di bidang “Tempat karakter yang dapat diedit”. Awalnya simbol dengan kode 20H. Untuk berpindah ke simbol lain, Anda perlu mengklik sel tabel yang sesuai dengan tombol kiri mouse. Prasasti di atas keakraban mencirikan parameter font yang dibuat.

Edit konten tempat yang familier dengan mengklik pikselnya dengan tombol kiri mouse. Setiap klik mengubah keadaan piksel menjadi sebaliknya. Di bagian bawah bidang pengeditan terdapat empat tombol di layar untuk manajemen piksel grup. Mengklik salah satunya akan menggeser konten tempat yang familier satu piksel ke atas, bawah, kiri, atau kanan dalam batasnya. Mengklik tombol "Hapus" di layar akan menghapus sepenuhnya tempat yang sudah dikenal, dan mengklik tombol "Kembalikan" akan mengembalikan gaya asli karakter yang diedit. Karena operasi penghapusan dan pengembalian secara permanen menghapus hasil pengeditan simbol, program menampilkan pesan peringatan yang sesuai sebelum menjalankannya.

Garis bawah dan kolom kanan tanda disorot dengan latar belakang kuning. Ini mengingatkan Anda bahwa memasukkan piksel ke dalamnya tidak diinginkan, karena area ini berfungsi sebagai pemisah karakter yang berdekatan pada layar LCD. Namun konsep “tidak diinginkan” bukan berarti larangan. Anda dapat mengaktifkan piksel, yang harus Anda lakukan, dengan membuat simbol seperti “D” atau “Sch”. Saat bekerja dengan simbol besar, dua baris terbawah dan dua kolom paling kanan disorot dengan latar belakang kuning, karena untuk persepsi yang baik tentang karakter besar, disarankan untuk menambah spasi di antara keduanya.

Di bawah area pengeditan terdapat dua tombol di layar yang dapat digunakan untuk menghapus generator karakter sepenuhnya atau mengkodekannya ulang dengan mengubah arah pemindaian byte sesuai keinginan. Jika Anda mencoba menghapus font yang perubahannya belum disimpan, program akan menampilkan pesan peringatan.

Urutan pemilihan simbol yang sewenang-wenang dan pengeditan ulang berulang kali diperbolehkan. Setelah perubahan pertama pada status piksel mana pun, simbol di sel pilihan yang sesuai akan disorot dalam huruf tebal dan diperbesar. Ini menunjukkan bahwa itu telah diedit. Segala sesuatu yang ditampilkan di jendela program selama proses pengeditan ditunjukkan pada Gambar. 7. Terlihat simbol “3” dan “Ш” sudah diedit, sekarang simbol “Ш” sedang diedit, dan “ekornya” berada pada zona yang tidak diinginkan.

Beras. 7. Jendela program selama pengeditan

Jika perlu, Anda dapat kapan saja mengubah pemindaian byte di familiar dari vertikal ke horizontal, dan sebaliknya. Untuk melakukan ini, klik tombol layar “Ubah jenis pemindaian”. Operasi ini berlaku secara bersamaan untuk semua simbol generator karakter. Setelah dijalankan, pesan terkait akan ditampilkan di layar dan parameter font yang ditampilkan di atas tempat biasa akan diubah. Tidak mungkin mengubah arah pemindaian jika hal ini menyebabkan peningkatan volume gambar font.

Beberapa kata tentang bekerja dengan font negatif. Konsep font negatif telah menjadi atavisme, karena banyak pengontrol LCD modern dapat membalikkan gambar sendiri. Namun demikian, program ini memiliki kemampuan untuk membuat dan mengedit font negatif. Tidak ada perbedaan dari bekerja dengan font positif. Bagaimanapun, simbol-simbol tersebut terlihat positif di layar komputer. Transformasi gambar mereka menjadi gambar negatif terjadi selama proses penulisan font yang dibuat ke disk komputer. Ke depan, kami mencatat bahwa ketika memuat file yang berisi font negatif untuk diedit, informasi tersebut dimasukkan ke dalam gambar generator karakter di memori komputer dalam bentuk terbalik (positif) dan dibalik lagi ketika ditulis ke disk.

Setelah mengatur parameter font, panel lain muncul di jendela program, berjudul "Output File". Ini berisi elemen kontrol yang memungkinkan Anda menulis file generator karakter ke disk dalam format yang diperlukan.

Dalam daftar drop-down “Format garis” (Gbr. 8), pilih struktur garis dalam file teks keluaran. Urutan angka heksadesimal yang dipisahkan dengan koma boleh diawali atau tidak ada dengan kata kunci "Data" atau ".Db".

Beras. 8. Daftar tarik-turun "Format garis"

Dalam daftar drop-down “Format angka” (Gbr. 9), pilih metode untuk merepresentasikan angka heksadesimal. Salah satu awalan yang tersedia dalam daftar atau akhiran “h” dapat ditambahkan ke dua digit heksadesimal NN.

Beras. 9. Daftar tarik-turun "Format angka"

Dengan mencentang opsi "Font negatif", Anda dapat membuat file dengan font ini.

Untuk menulis file ke disk komputer Anda, Anda harus mengklik tombol layar “Simpan generator karakter”. Jalur ke sana ditunjukkan dalam dialog standar Windows. Secara default, nama filenya adalah FontXXxYYmn.fnt, dengan XXxYY adalah format tempat yang sudah dikenal; m - karakter "v" atau "h", yang berarti pemindaian byte secara vertikal atau horizontal; n - simbol "p" atau "n", yang masing-masing menunjukkan citra positif atau negatif dari karakter; fnt - ekstensi nama.

Nama file dapat diubah dengan menambahkan karakter yang valid di awal atau akhir. Namun, tidak disarankan untuk menghancurkan struktur "FontXXxYYmn". Dengan menggunakannya, program mengenali parameter font "nya" saat memuatnya. Jika tidak, program akan menganggap file tersebut "asing" dan memerlukan input parameter secara manual.

Jika perlu, edit file generator karakter yang sudah jadi di jendela yang ditunjukkan pada Gambar. 3, klik tombol layar “Impor generator karakter”. Dialog pemuatan file Windows standar akan terbuka, di mana Anda harus memilih file yang akan diedit. Proses pengunduhan file ini berbeda-beda tergantung formatnya.

File yang dibuat menggunakan editor yang dimaksud dimuat ke dalamnya tanpa campur tangan pengguna. Semua informasi yang diperlukan tentang parameter font terkandung dalam nama file, tentu saja, jika konstruksi yang dijelaskan di atas disimpan di dalamnya.

Jika nama file tidak berisi informasi yang diperlukan untuk identifikasi, program akan meminta Anda untuk memasukkannya secara manual dan membuka jendela di mana Anda harus menentukan ukuran ruang karakter, arah byte, dan apakah font dalam format file, positif atau negatif. Oleh karena itu, sebelum mengedit file "asing", Anda harus mengetahui parameter ini.

Jika parameter ditentukan dengan benar, maka font "asing" akan berhasil dimuat dengan kemungkinan besar. Algoritme untuk membaca informasi yang terdapat dalam file “memahami” bilangan desimal dan heksadesimal dalam berbagai representasi, mengekstrak informasi berguna dari pernyataan Data dan .Db, dan mengabaikan komentar. Mungkin satu-satunya hal yang dapat menjadi penghambat pemuatan yang benar adalah adanya informasi tambahan apa pun dalam file dalam bentuk tanpa komentar.

Proses mengedit font yang diunduh tidak berbeda dengan proses membuat font baru. Langkah terakhir adalah menyimpan pekerjaan yang dilakukan dalam file yang akan menjadi “milik mereka” untuk program tersebut.


Pengonversi Gambar LCD- kecil C++ / JavaScript / QT utilitas grafis untuk membuat gambar dan font dalam format sumber" C" untuk aplikasi tertanam.

Suatu ketika, pada ~2005, ketika saya pertama kali menemukan tampilan grafis BG160160B dan kebutuhan untuk menampilkan teks di dalamnya, saya menyiapkan utilitas untuk membuat font untuk tampilan ini. Tidak ada kemudahan khusus di dalamnya, hanya tabel simbol dan editor gambar untuk masing-masingnya. Hasilnya adalah file "C" dengan array bit untuk representasi monokrom. Saya menggunakannya beberapa lama dan lupa (walaupun ada seseorang yang mempostingnya di salah satu forum di Internet).

Beberapa tahun kemudian, tugas serupa muncul, tetapi dengan tampilan berbeda - TIC154 di PCF8535. Selain itu, penting untuk mengonversi gambar, bukan hanya font, ke dalam format “C”. Diputuskan untuk menulis program baru dengan kemampuan yang diperlukan, termasuk format variabel dari file “C” keluaran dan data untuk pengontrol yang berbeda. Ini adalah bagaimana LCD Bitmap Converter lahir, yang digunakan, namun, hanya dalam satu proyek, tetapi kita tidak membicarakannya.

Beberapa waktu kemudian, ketika saya beralih dari Windows ke Ubuntu Linux dan sudah menulis perangkat lunak untuk mikrokontroler di sana, sebuah proyek dengan tampilan BP320240E baru pada RA8835 muncul di depan mata, dan pemahaman tentang tugas ini agak berubah, ide dan persyaratan baru muncul. , yang pada akhirnya menyebabkan lahirnya program LCD Image Converter...

Sebelum memulai, Anda harus menentukan jenis tampilan (monokrom, skala abu-abu, warna), jumlah bit per piksel dan orientasi byte dalam memori tampilan.

Jika Anda memerlukan gambar, Anda dapat membuat yang baru (dengan memasukkan nama struktur data), atau mengimpor dari file grafik yang sudah ada (bmp, gif, jpg, jpeg, png, pbm, pgm, ppm, tiff, xbm, xpm), ubah ukuran ke yang diinginkan, buat perubahan yang diperlukan dan simpan file format bmp, jpg, png, ppm, bertengkar, xbm Dan xpm.

Pengonversi Gambar LCD menawarkan perubahan status piksel menggunakan mouse (tombol kiri untuk warna 1, tombol kanan untuk warna 2), berbelok (90, 180, 270 derajat), shift, inversi warna, melihat di editor dalam pembesaran dari 1 ke 50 kali dan mengedit menggunakan editor eksternal (misalnya Gimp).

Pengonversi Gambar LCD memungkinkan Anda membuat font berdasarkan font yang tersedia di sistem dan mengeditnya. Semua karakter dapat diubah ukurannya dan dibalik (atau dipilih), mendukung Unikode, font dapat digambar sebagai monospace atau proporsional, penghalusan font dapat dinonaktifkan, dll... Karakter yang dipilih dapat digabungkan menjadi satu gambar, semua fungsi editor gambar berlaku untuk karakter yang dipilih, ada pratinjau font, fontnya disimpan xml file dan dapat dibuka nanti untuk melanjutkan pengeditan.

  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat