WIP: text import

This commit is contained in:
2025-05-26 03:12:03 +03:00
parent d508f0ab35
commit 295b079dab
12 changed files with 458 additions and 36 deletions

View File

@@ -51,7 +51,7 @@ namespace McBitFont {
comments.Add("font_header_map",
"// Font header map:\n" +
"// packed; // Flag for packed font" +
"// packed; // Flag for packed font\n" +
"// width; // Font width in pixels (0 - variable width)\n" +
"// height; // Font height in pixels\n" +
"// space; // Font space in pixels\n" +

View File

@@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<Costura />
</Weavers>

View File

@@ -72,6 +72,7 @@
redoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
pasteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
selectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
fontToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
makeVarWidthToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
prependSymbolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -101,7 +102,7 @@
chkHexCodes = new System.Windows.Forms.CheckBox();
chkRectSelect = new System.Windows.Forms.CheckBox();
label3 = new System.Windows.Forms.Label();
selectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
importTextToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
((System.ComponentModel.ISupportInitialize)nudX).BeginInit();
((System.ComponentModel.ISupportInitialize)nudY).BeginInit();
panel1.SuspendLayout();
@@ -523,7 +524,7 @@
//
// fileToolStripMenuItem
//
fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { newToolStripMenuItem, openToolStripMenuItem, saveToolStripMenuItem, saveAsToolStripMenuItem, importImageToolStripMenuItem, exportToolStripMenuItem, exitToolStripMenuItem });
fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { newToolStripMenuItem, openToolStripMenuItem, saveToolStripMenuItem, saveAsToolStripMenuItem, importTextToolStripMenuItem1, importImageToolStripMenuItem, exportToolStripMenuItem, exitToolStripMenuItem });
fileToolStripMenuItem.Name = "fileToolStripMenuItem";
fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
fileToolStripMenuItem.Text = "File";
@@ -616,7 +617,7 @@
undoToolStripMenuItem.Image = Properties.Resources.arrow_undo;
undoToolStripMenuItem.Name = "undoToolStripMenuItem";
undoToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z;
undoToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
undoToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
undoToolStripMenuItem.Text = "Undo";
undoToolStripMenuItem.ToolTipText = "Undo last canvas change";
undoToolStripMenuItem.Click += undoToolStripMenuItem_Click;
@@ -626,7 +627,7 @@
redoToolStripMenuItem.Image = Properties.Resources.arrow_redo;
redoToolStripMenuItem.Name = "redoToolStripMenuItem";
redoToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y;
redoToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
redoToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
redoToolStripMenuItem.Text = "Redo";
redoToolStripMenuItem.ToolTipText = "Redo canvas change";
redoToolStripMenuItem.Click += redoToolStripMenuItem_Click;
@@ -638,7 +639,7 @@
copyToolStripMenuItem.Name = "copyToolStripMenuItem";
copyToolStripMenuItem.ShortcutKeyDisplayString = "";
copyToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C;
copyToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
copyToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
copyToolStripMenuItem.Text = "Copy";
copyToolStripMenuItem.ToolTipText = "Copy current symbol to clipboard";
copyToolStripMenuItem.Click += copyToolStripMenuItem_Click;
@@ -650,11 +651,19 @@
pasteToolStripMenuItem.Name = "pasteToolStripMenuItem";
pasteToolStripMenuItem.ShortcutKeyDisplayString = "";
pasteToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V;
pasteToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
pasteToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
pasteToolStripMenuItem.Text = "Paste";
pasteToolStripMenuItem.ToolTipText = "Paste from clipboard to current symbol";
pasteToolStripMenuItem.Click += pasteToolStripMenuItem_Click;
//
// selectToolStripMenuItem
//
selectToolStripMenuItem.Image = Properties.Resources.fam_rectt;
selectToolStripMenuItem.Name = "selectToolStripMenuItem";
selectToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
selectToolStripMenuItem.Text = "Select";
selectToolStripMenuItem.Click += selectToolStripMenuItem_Click;
//
// fontToolStripMenuItem
//
fontToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { makeVarWidthToolStripMenuItem, prependSymbolToolStripMenuItem, appendSymbolToolStripMenuItem, removeSymbolToolStripMenuItem, removeBeforeToolStripMenuItem, removeAfterToolStripMenuItem, CodeShiftToolStripMenuItem });
@@ -956,13 +965,13 @@
label3.TabIndex = 21;
label3.Text = "Cursor:";
//
// selectToolStripMenuItem
// importTextToolStripMenuItem1
//
selectToolStripMenuItem.Image = Properties.Resources.fam_rectt;
selectToolStripMenuItem.Name = "selectToolStripMenuItem";
selectToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
selectToolStripMenuItem.Text = "Select";
selectToolStripMenuItem.Click += selectToolStripMenuItem_Click;
importTextToolStripMenuItem1.Image = Properties.Resources.folder_table;
importTextToolStripMenuItem1.Name = "importTextToolStripMenuItem1";
importTextToolStripMenuItem1.Size = new System.Drawing.Size(184, 22);
importTextToolStripMenuItem1.Text = "Import text file";
importTextToolStripMenuItem1.Click += importTextToolStripMenuItem1_Click;
//
// MainForm
//
@@ -1090,6 +1099,7 @@
private System.Windows.Forms.ToolStripMenuItem FillToolStripMenuItem;
private System.Windows.Forms.CheckBox chkRectSelect;
private System.Windows.Forms.ToolStripMenuItem selectToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem importTextToolStripMenuItem1;
}
}

View File

@@ -711,13 +711,9 @@ namespace McBitFont {
}
private void newToolStripMenuItem_Click(object sender, EventArgs e) {
checkModifiedFrame();
if (prjModified) {
if (MessageBox.Show("The project is modified.\nDo you want to save it first?", "Project was modified!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) {
saveToolStripMenuItem.PerformClick();
return;
}
}
CheckModifiedFrame();
if (CheckModifiedProject()) return;
New form = new New(this);
if (form.ShowDialog() == DialogResult.OK) {
Cursor.Current = Cursors.WaitCursor;
@@ -797,7 +793,7 @@ namespace McBitFont {
private void MiniList_SelectedIndexChanged(object sender, EventArgs e) {
if (miniList.FocusedItem == null) return;
checkModifiedFrame();
CheckModifiedFrame();
if (miniList.SelectedItems.Count == 0) {
removeSymbolToolStripMenuItem.Enabled = false;
removeBeforeToolStripMenuItem.Enabled = false;
@@ -852,7 +848,7 @@ namespace McBitFont {
}
private void SaveToolStripMenuItem_Click(object sender, EventArgs e) {
checkModifiedFrame();
CheckModifiedFrame();
if (dlgSave.ShowDialog() == DialogResult.OK) {
SaveProject(dlgSave.FileName);
}
@@ -935,13 +931,13 @@ namespace McBitFont {
this.Text = "McBitFont v" + version + " - " + prjName;
}
private void openToolStripMenuItem_Click(object sender, EventArgs e) {
if (prjModified) {
if (MessageBox.Show("The project is modified.\nDo you want to save it first?", "Project was modified!", MessageBoxButtons.YesNo) == DialogResult.Yes) {
saveAsToolStripMenuItem.PerformClick();
return;
}
}
CheckModifiedFrame();
if (CheckModifiedProject()) return;
dlgOpen.FilterIndex = 1;
if (dlgOpen.ShowDialog() == DialogResult.OK) {
LoadProject(dlgOpen.FileName);
}
@@ -1035,7 +1031,7 @@ namespace McBitFont {
}
// Check modified / Save frame
private void checkModifiedFrame() {
private void CheckModifiedFrame() {
if (modified) {
if (MessageBox.Show("Current symbol is modified.\nDo you want to save the changes?", "Symbol was modified!", MessageBoxButtons.YesNo) == DialogResult.Yes) {
SaveFrame();
@@ -1044,11 +1040,22 @@ namespace McBitFont {
}
}
// Check if project was modified
private bool CheckModifiedProject() {
if (prjModified) {
if (MessageBox.Show("The project is modified.\nDo you want to save it first?", "Project was modified!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) {
saveToolStripMenuItem.PerformClick();
return true;
}
}
return false;
}
private void saveToolStripMenuItem_Click_1(object sender, EventArgs e) {
if (prjFileName == "") {
saveAsToolStripMenuItem.PerformClick();
} else {
checkModifiedFrame();
CheckModifiedFrame();
SaveProject(prjFileName);
}
@@ -1160,7 +1167,7 @@ namespace McBitFont {
private void CodeShiftToolStripMenuItem_Click(object sender, EventArgs e) {
if (!monospaced && frames.Count == 1) return;
checkModifiedFrame();
CheckModifiedFrame();
CodeShift csform = new CodeShift(this);
if (csform.ShowDialog() == DialogResult.OK) {
@@ -1240,5 +1247,82 @@ namespace McBitFont {
chkRectSelect.Checked = !chkRectSelect.Checked;
selectToolStripMenuItem.Checked = !selectToolStripMenuItem.Checked;
}
private void importTextToolStripMenuItem1_Click(object sender, EventArgs e) {
if (CheckModifiedProject()) return;
dlgOpen.FilterIndex = 2;
if (dlgOpen.ShowDialog() == DialogResult.OK) {
var lines = File.ReadAllLines(dlgOpen.FileName);
int bits = 0;
List<uint> data = [];
foreach (var line in lines) {
if (line.TrimStart().StartsWith("//")) continue; // Ignore comments
if (line.Trim().Length < 1) continue; // Ignore empty lines
if (bits == 0) {
if (line.Contains("uint8_t")) bits = 8; // Found 8 bit array
if (line.Contains("uint16_t")) bits = 16; // Found 16 bit array
if (line.Contains("uint31_t")) bits = 32; // Found 32 bit array
}
string s = line;
if (s.IndexOf("//") >= 0) s = s.Remove(s.IndexOf("//")); // Remove comments
var words = s.Split(','); // split a line by commas
string w;
foreach (var word in words) {
int numBase = 10;
w = word.Trim();
if (w.Length < 1) continue;
if (w.IndexOf("0x") >= 0) { // Check if value is written as hexadecimal
w = w.Remove(w.IndexOf("0x"), 2);
numBase = 16;
}
if (w.IndexOf("0b") >= 0) { // Check if value is written as binary
w = w.Remove(w.IndexOf("0b"), 2);
numBase = 2;
}
try { // Try to convert a number from text
data.Add(Convert.ToUInt32(w, numBase));
}
catch {
continue;
}
//MessageBox.Show(w + ": Length: " + w.Length + " Bits: " + bits + " Converted: " + data.Last() + "\nData length: " + data.Count);
}
}
if (MessageBox.Show(bits + "-font found. " + data.Count + " numbers (" + data.Count * bits / 8 + " bytes) total\n" + "Start code: " + data.ElementAt(4) + " End code: " + data.ElementAt(5) + "\nDo you want to load it?", "Import from text file", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) {
// Font header
bool packed = data.ElementAt(0) == 1;
int width= (int)data.ElementAt(1);
int height = (int)data.ElementAt(2);
int first = (int)data.ElementAt(4);
int last = (int)data.ElementAt(5);
frames.Clear();
miniList.Clear();
ilMiniatures.Images.Clear();
FrameMiniature newf;
int neww = width;
int curFrame = 0;
int frameNumIndex = 0;
for (int i = 0; i < data.Count; i++) {
if (frameNumIndex == 0) {
if (width == 0) {
neww = (int)data.ElementAt(i);
frameNumIndex++;
}
newf = new(curFrame + first, neww, height);
}
// TODO: fill frame.data with current byte
// increment NumIndex
}
}
//MessageBox.Show(bits + "-font found. " + data.Count + " numbers (" + data.Count * bits / 8 + " bytes) total\n" + "Start code: " + data.ElementAt(4) + " End code: " + data.ElementAt(5));
}
}
}
}

View File

@@ -32,6 +32,10 @@
<ItemGroup>
<Content Include="icon.ico" />
<Content Include="icon_64.ico" />
<PackageReference Include="Costura.Fody" Version="6.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="MessagePack" Version="3.1.3" />
<PackageReference Include="MessagePack.Annotations" Version="3.1.3" />
<PackageReference Include="MessagePackAnalyzer" Version="3.1.3" />

View File

@@ -250,6 +250,16 @@ namespace McBitFont.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap folder_table {
get {
object obj = ResourceManager.GetObject("folder_table", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>

View File

@@ -142,9 +142,6 @@
<data name="arrow_redo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\redo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Disk.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Disk.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -196,12 +193,18 @@
<data name="z_redo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_redo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="fam_base" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\fam_base.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="fam_rectt" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\fam_rectt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Page-white.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Page-white.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Disk.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Disk.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Canvas_Fill" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Canvas_Fill.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -220,7 +223,7 @@
<data name="icon_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="fam_base" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\fam_base.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="folder_table" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_table.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

View File

@@ -0,0 +1,50 @@
// File generated by McBitFont v2.0
// made by Anton Mukhin (mcfly@mcflyer.ru)
//
//
// Bytes total: 38
// Scan order: Columns
// Horizontal direction: Left to Right
// Vertical direction: Top to Bottom
// Bit order: LSB Top
// Numbers base: Hexadecimal
// Numbers size: 8 bit
// Text format: 1D C array
// Numbers per line: 1 Column per line
// Font header map:
// packed; // Flag for packed font// width; // Font width in pixels (0 - variable width)
// height; // Font height in pixels
// space; // Font space in pixels
// first; // First character code
// last; // Last character code
const uint8_t Untitled[] = {
// Meta header
0, // Is it a packed font?
0, // Font width in pixels; 0 - variable width
16, // Font height in pixels
0, // Font space (between symbols) in pixels
0, // First character code
0, // Last character code
// Data:
0xfc, 0x1f,
0x00, 0x30,
0x0c, 0x60,
0x06, 0x1c,
0x02, 0x36,
0x32, 0x23,
0x32, 0x21,
0x82, 0x21,
0x82, 0x2c,
0xc6, 0x2c,
0x64, 0x20,
0x3c, 0x30,
0x00, 0x10,
0x1e, 0x20,
0xf0, 0x3f,
0x00, 0x00
};

258
examples/tests/testfont.txt Normal file
View File

@@ -0,0 +1,258 @@
// File generated by McBitFont v2.0
// made by Anton Mukhin (mcfly@mcflyer.ru)
//
//
// Bytes total: 1768
// Scan order: Columns
// Horizontal direction: Left to Right
// Vertical direction: Top to Bottom
// Bit order: LSB Top
// Numbers base: Hexadecimal
// Numbers size: 8 bit
// Text format: 1D C array
// Numbers per line: 1 Symbol per line
// Font header map:
// packed; // Flag for packed font// width; // Font width in pixels (0 - variable width)
// height; // Font height in pixels
// space; // Font space in pixels
// first; // First character code
// last; // Last character code
const uint8_t haxrcorp_4089_cyrillic_altgr[] = {
// Meta header
0, // Is it a packed font?
0, // Font width in pixels; 0 - variable width
10, // Font height in pixels
0, // Font space (between symbols) in pixels
32, // First character code
255, // Last character code
// Data:
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 32 -->
0x01, 0xbe, 0x00, // 33 --> !
0x03, 0x0e, 0x00, 0x00, 0x00, 0x0e, 0x00, // 34 --> "
0x05, 0x28, 0x00, 0x7c, 0x00, 0x28, 0x00, 0x7c, 0x00, 0x28, 0x00, // 35 --> #
0x05, 0x4c, 0x00, 0x92, 0x00, 0xff, 0x01, 0x92, 0x00, 0x64, 0x00, // 36 --> $
0x07, 0x84, 0x00, 0x4a, 0x00, 0x24, 0x00, 0x10, 0x00, 0x48, 0x00, 0xa4, 0x00, 0x42, 0x00, // 37 --> %
0x06, 0x6c, 0x00, 0x92, 0x00, 0x92, 0x00, 0xac, 0x00, 0x40, 0x00, 0xb0, 0x00, // 38 --> &
0x01, 0x0e, 0x00, // 39 --> '
0x03, 0x7c, 0x00, 0x82, 0x00, 0x01, 0x01, // 40 --> (
0x03, 0x01, 0x01, 0x82, 0x00, 0x7c, 0x00, // 41 --> )
0x05, 0x14, 0x00, 0x08, 0x00, 0x3e, 0x00, 0x08, 0x00, 0x14, 0x00, // 42 --> *
0x05, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x10, 0x00, 0x10, 0x00, // 43 --> +
0x02, 0x00, 0x01, 0xc0, 0x00, // 44 --> ,
0x05, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, // 45 --> -
0x01, 0x80, 0x00, // 46 --> .
0x07, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, // 47 --> /
0x05, 0x7c, 0x00, 0xa2, 0x00, 0x92, 0x00, 0x8a, 0x00, 0x7c, 0x00, // 48 --> 0
0x02, 0x04, 0x00, 0xfe, 0x00, // 49 --> 1
0x05, 0x84, 0x00, 0xc2, 0x00, 0xa2, 0x00, 0x92, 0x00, 0x8c, 0x00, // 50 --> 2
0x05, 0x44, 0x00, 0x82, 0x00, 0x92, 0x00, 0x92, 0x00, 0x6c, 0x00, // 51 --> 3
0x05, 0x30, 0x00, 0x28, 0x00, 0x24, 0x00, 0xfe, 0x00, 0x20, 0x00, // 52 --> 4
0x05, 0x4e, 0x00, 0x8a, 0x00, 0x8a, 0x00, 0x8a, 0x00, 0x72, 0x00, // 53 --> 5
0x05, 0x7c, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x64, 0x00, // 54 --> 6
0x05, 0x02, 0x00, 0x02, 0x00, 0xc2, 0x00, 0x32, 0x00, 0x0e, 0x00, // 55 --> 7
0x05, 0x6c, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x6c, 0x00, // 56 --> 8
0x05, 0x4c, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x7c, 0x00, // 57 --> 9
0x01, 0x48, 0x00, // 58 --> :
0x02, 0x00, 0x01, 0xc8, 0x00, // 59 --> ;
0x03, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, // 60 --> <
0x05, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, // 61 --> =
0x03, 0x44, 0x00, 0x28, 0x00, 0x10, 0x00, // 62 --> >
0x05, 0x04, 0x00, 0x02, 0x00, 0xa2, 0x00, 0x12, 0x00, 0x0c, 0x00, // 63 --> ?
0x08, 0x7e, 0x00, 0x81, 0x00, 0x99, 0x00, 0xa5, 0x00, 0xa5, 0x00, 0xbd, 0x00, 0xa1, 0x00, 0x1e, 0x00, // 64 --> @
0x05, 0xfc, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0xfc, 0x00, // 65 --> A
0x05, 0xfe, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x6c, 0x00, // 66 --> B
0x05, 0x7c, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0x44, 0x00, // 67 --> C
0x05, 0xfe, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0x7c, 0x00, // 68 --> D
0x05, 0xfe, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x82, 0x00, // 69 --> E
0x05, 0xfe, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x02, 0x00, // 70 --> F
0x05, 0x7c, 0x00, 0x82, 0x00, 0x82, 0x00, 0x92, 0x00, 0x74, 0x00, // 71 --> G
0x05, 0xfe, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xfe, 0x00, // 72 --> H
0x01, 0xfe, 0x00, // 73 --> I
0x05, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x7e, 0x00, // 74 --> J
0x05, 0xfe, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x82, 0x00, // 75 --> K
0x05, 0xfe, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, // 76 --> L
0x07, 0xfe, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0xfe, 0x00, // 77 --> M
0x05, 0xfe, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0xfe, 0x00, // 78 --> N
0x05, 0x7c, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0x7c, 0x00, // 79 --> O
0x05, 0xfe, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x0c, 0x00, // 80 --> P
0x05, 0x7c, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0x7c, 0x01, // 81 --> Q
0x05, 0xfe, 0x00, 0x12, 0x00, 0x32, 0x00, 0x52, 0x00, 0x8c, 0x00, // 82 --> R
0x05, 0x4c, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x64, 0x00, // 83 --> S
0x05, 0x02, 0x00, 0x02, 0x00, 0xfe, 0x00, 0x02, 0x00, 0x02, 0x00, // 84 --> T
0x05, 0x7e, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x7e, 0x00, // 85 --> U
0x05, 0x0e, 0x00, 0x30, 0x00, 0xc0, 0x00, 0x30, 0x00, 0x0e, 0x00, // 86 --> V
0x07, 0x7e, 0x00, 0x80, 0x00, 0x80, 0x00, 0x7e, 0x00, 0x80, 0x00, 0x80, 0x00, 0x7e, 0x00, // 87 --> W
0x05, 0xc6, 0x00, 0x28, 0x00, 0x10, 0x00, 0x28, 0x00, 0xc6, 0x00, // 88 --> X
0x05, 0x06, 0x00, 0x08, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x06, 0x00, // 89 --> Y
0x05, 0xc2, 0x00, 0xa2, 0x00, 0x92, 0x00, 0x8a, 0x00, 0x86, 0x00, // 90 --> Z
0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, // 91 --> [
0x07, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, // 92 --> \
0x03, 0x01, 0x01, 0x01, 0x01, 0xff, 0x01, // 93 --> ]
0x05, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, // 94 --> ^
0x05, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, // 95 --> _
0x03, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, // 96 --> `
0x04, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0xf8, 0x00, // 97 --> a
0x04, 0xfe, 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, // 98 --> b
0x04, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0x50, 0x00, // 99 --> c
0x04, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0xfe, 0x00, // 100 --> d
0x04, 0x70, 0x00, 0xa8, 0x00, 0xa8, 0x00, 0x30, 0x00, // 101 --> e
0x02, 0xfc, 0x00, 0x12, 0x00, // 102 --> f
0x04, 0x70, 0x00, 0x88, 0x02, 0x88, 0x02, 0xf8, 0x01, // 103 --> g
0x04, 0xfe, 0x00, 0x08, 0x00, 0x08, 0x00, 0xf0, 0x00, // 104 --> h
0x01, 0xfa, 0x00, // 105 --> i
0x02, 0x00, 0x02, 0xfa, 0x01, // 106 --> j
0x04, 0xfe, 0x00, 0x20, 0x00, 0x50, 0x00, 0x88, 0x00, // 107 --> k
0x01, 0xfe, 0x00, // 108 --> l
0x07, 0xf8, 0x00, 0x08, 0x00, 0x08, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x08, 0x00, 0xf0, 0x00, // 109 --> m
0x04, 0xf8, 0x00, 0x08, 0x00, 0x08, 0x00, 0xf0, 0x00, // 110 --> n
0x04, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, // 111 --> o
0x04, 0xf8, 0x03, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, // 112 --> p
0x04, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0xf8, 0x03, // 113 --> q
0x03, 0xf8, 0x00, 0x08, 0x00, 0x08, 0x00, // 114 --> r
0x03, 0x90, 0x00, 0xa8, 0x00, 0x48, 0x00, // 115 --> s
0x03, 0x08, 0x00, 0xfe, 0x00, 0x08, 0x00, // 116 --> t
0x04, 0x78, 0x00, 0x80, 0x00, 0x80, 0x00, 0xf8, 0x00, // 117 --> u
0x04, 0x78, 0x00, 0x80, 0x00, 0x80, 0x00, 0x78, 0x00, // 118 --> v
0x07, 0x78, 0x00, 0x80, 0x00, 0x80, 0x00, 0x78, 0x00, 0x80, 0x00, 0x80, 0x00, 0x78, 0x00, // 119 --> w
0x04, 0xd8, 0x00, 0x20, 0x00, 0x20, 0x00, 0xd8, 0x00, // 120 --> x
0x04, 0x78, 0x00, 0x80, 0x02, 0x80, 0x02, 0xf8, 0x01, // 121 --> y
0x04, 0xc8, 0x00, 0xa8, 0x00, 0xa8, 0x00, 0x98, 0x00, // 122 --> z
0x03, 0x10, 0x00, 0xee, 0x00, 0x01, 0x01, // 123 --> {
0x01, 0xff, 0x01, // 124 --> |
0x03, 0x01, 0x01, 0xee, 0x00, 0x10, 0x00, // 125 --> }
0x06, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x08, 0x00, // 126 --> ~
0x00, // 127 --> 
0x00, // 128 --> Ђ
0x00, // 129 --> Ѓ
0x00, // 130 -->
0x00, // 131 --> ѓ
0x00, // 132 --> „
0x00, // 133 --> …
0x00, // 134 --> †
0x00, // 135 --> ‡
0x00, // 136 --> €
0x00, // 137 --> ‰
0x00, // 138 --> Љ
0x00, // 139 -->
0x00, // 140 --> Њ
0x00, // 141 --> Ќ
0x00, // 142 --> Ћ
0x00, // 143 --> Џ
0x00, // 144 --> ђ
0x00, // 145 -->
0x00, // 146 -->
0x00, // 147 --> “
0x00, // 148 --> ”
0x04, 0x30, 0x00, 0x78, 0x00, 0x78, 0x00, 0x30, 0x00, // 149 --> •
0x00, // 150 -->
0x00, // 151 --> —
0x00, // 152 --> ˜
0x00, // 153 --> ™
0x00, // 154 --> љ
0x00, // 155 -->
0x00, // 156 --> њ
0x00, // 157 --> ќ
0x00, // 158 --> ћ
0x00, // 159 --> џ
0x00, // 160 -->  
0x00, // 161 --> Ў
0x00, // 162 --> ў
0x00, // 163 --> Ј
0x00, // 164 --> ¤
0x00, // 165 --> Ґ
0x01, 0xef, 0x01, // 166 --> ¦
0x00, // 167 --> §
0x00, // 168 --> Ё
0x07, 0x7c, 0x00, 0x82, 0x00, 0xba, 0x00, 0xaa, 0x00, 0xaa, 0x00, 0x82, 0x00, 0x7c, 0x00, // 169 --> ©
0x00, // 170 --> Є
0x00, // 171 --> «
0x00, // 172 --> ¬
0x00, // 173 --> ­
0x00, // 174 --> ®
0x00, // 175 --> Ї
0x04, 0x06, 0x00, 0x09, 0x00, 0x09, 0x00, 0x06, 0x00, // 176 --> °
0x05, 0x88, 0x00, 0x88, 0x00, 0xbe, 0x00, 0x88, 0x00, 0x88, 0x00, // 177 --> ±
0x04, 0x12, 0x00, 0x19, 0x00, 0x15, 0x00, 0x12, 0x00, // 178 --> І
0x00, // 179 --> і
0x00, // 180 --> ґ
0x00, // 181 --> µ
0x00, // 182 --> ¶
0x00, // 183 --> ·
0x00, // 184 --> ё
0x08, 0xfe, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0xfe, 0x00, 0x24, 0x00, 0x2a, 0x00, 0x24, 0x00, // 185 --> №
0x00, // 186 --> є
0x00, // 187 --> »
0x00, // 188 --> ј
0x00, // 189 --> Ѕ
0x00, // 190 --> ѕ
0x00, // 191 --> ї
0x05, 0xfc, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0xfc, 0x00, // 192 --> А
0x05, 0xfe, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x62, 0x00, // 193 --> Б
0x05, 0xfe, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x6c, 0x00, // 194 --> В
0x05, 0xfe, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, // 195 --> Г
0x07, 0x80, 0x01, 0xfc, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0xfc, 0x00, 0x80, 0x01, // 196 --> Д
0x05, 0xfe, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x82, 0x00, // 197 --> Е
0x07, 0xee, 0x00, 0x10, 0x00, 0x10, 0x00, 0xfe, 0x00, 0x10, 0x00, 0x10, 0x00, 0xee, 0x00, // 198 --> Ж
0x05, 0x44, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x6c, 0x00, // 199 --> З
0x05, 0xfe, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0xfe, 0x00, // 200 --> И
0x05, 0xfc, 0x00, 0x21, 0x00, 0x12, 0x00, 0x09, 0x00, 0xfc, 0x00, // 201 --> Й
0x05, 0xfe, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x82, 0x00, // 202 --> К
0x05, 0x80, 0x00, 0x7c, 0x00, 0x02, 0x00, 0x02, 0x00, 0xfe, 0x00, // 203 --> Л
0x07, 0xfe, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0xfe, 0x00, // 204 --> М
0x05, 0xfe, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xfe, 0x00, // 205 --> Н
0x05, 0x7c, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0x7c, 0x00, // 206 --> О
0x05, 0xfe, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xfe, 0x00, // 207 --> П
0x05, 0xfe, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x0c, 0x00, // 208 --> Р
0x05, 0x7c, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0x44, 0x00, // 209 --> С
0x05, 0x02, 0x00, 0x02, 0x00, 0xfe, 0x00, 0x02, 0x00, 0x02, 0x00, // 210 --> Т
0x05, 0x4e, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x7e, 0x00, // 211 --> У
0x07, 0x7c, 0x00, 0x82, 0x00, 0x82, 0x00, 0xff, 0x01, 0x82, 0x00, 0x82, 0x00, 0x7c, 0x00, // 212 --> Ф
0x05, 0xc6, 0x00, 0x28, 0x00, 0x10, 0x00, 0x28, 0x00, 0xc6, 0x00, // 213 --> Х
0x06, 0xfe, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xfe, 0x00, 0x80, 0x01, // 214 --> Ц
0x05, 0x0e, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xfe, 0x00, // 215 --> Ч
0x07, 0xfe, 0x00, 0x80, 0x00, 0x80, 0x00, 0xfe, 0x00, 0x80, 0x00, 0x80, 0x00, 0xfe, 0x00, // 216 --> Ш
0x08, 0xfe, 0x00, 0x80, 0x00, 0x80, 0x00, 0xfe, 0x00, 0x80, 0x00, 0x80, 0x00, 0xfe, 0x00, 0x80, 0x01, // 217 --> Щ
0x07, 0x02, 0x00, 0x02, 0x00, 0xfe, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x60, 0x00, // 218 --> Ъ
0x07, 0xfe, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x60, 0x00, 0x00, 0x00, 0xfe, 0x00, // 219 --> Ы
0x05, 0xfe, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x60, 0x00, // 220 --> Ь
0x05, 0x44, 0x00, 0x82, 0x00, 0x92, 0x00, 0x92, 0x00, 0x7c, 0x00, // 221 --> Э
0x08, 0xfe, 0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0x7c, 0x00, // 222 --> Ю
0x05, 0x8c, 0x00, 0x52, 0x00, 0x32, 0x00, 0x12, 0x00, 0xfe, 0x00, // 223 --> Я
0x04, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0xf8, 0x00, // 224 --> а
0x04, 0x7c, 0x00, 0x8a, 0x00, 0x8a, 0x00, 0x72, 0x00, // 225 --> б
0x04, 0xf8, 0x00, 0xa8, 0x00, 0xa8, 0x00, 0x50, 0x00, // 226 --> в
0x04, 0xf8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, // 227 --> г
0x06, 0x80, 0x01, 0xf0, 0x00, 0x88, 0x00, 0x88, 0x00, 0xf0, 0x00, 0x80, 0x01, // 228 --> д
0x04, 0x70, 0x00, 0xa8, 0x00, 0xa8, 0x00, 0x30, 0x00, // 229 --> е
0x07, 0xd8, 0x00, 0x20, 0x00, 0x20, 0x00, 0xf8, 0x00, 0x20, 0x00, 0x20, 0x00, 0xd8, 0x00, // 230 --> ж
0x04, 0x50, 0x00, 0x88, 0x00, 0xa8, 0x00, 0x50, 0x00, // 231 --> з
0x05, 0xf8, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0xf8, 0x00, // 232 --> и
0x05, 0xf8, 0x00, 0x41, 0x00, 0x22, 0x00, 0x11, 0x00, 0xf8, 0x00, // 233 --> й
0x04, 0xf8, 0x00, 0x20, 0x00, 0x50, 0x00, 0x88, 0x00, // 234 --> к
0x04, 0x80, 0x00, 0x70, 0x00, 0x08, 0x00, 0xf8, 0x00, // 235 --> л
0x05, 0xf8, 0x00, 0x10, 0x00, 0x20, 0x00, 0x10, 0x00, 0xf8, 0x00, // 236 --> м
0x04, 0xf8, 0x00, 0x20, 0x00, 0x20, 0x00, 0xf8, 0x00, // 237 --> н
0x04, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, // 238 --> о
0x04, 0xf8, 0x00, 0x08, 0x00, 0x08, 0x00, 0xf8, 0x00, // 239 --> п
0x04, 0xf8, 0x03, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, // 240 --> р
0x04, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0x50, 0x00, // 241 --> с
0x05, 0x08, 0x00, 0x08, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x08, 0x00, // 242 --> т
0x04, 0x78, 0x00, 0x80, 0x02, 0x80, 0x02, 0xf8, 0x01, // 243 --> у
0x07, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0xfe, 0x03, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, // 244 --> ф
0x04, 0xd8, 0x00, 0x20, 0x00, 0x20, 0x00, 0xd8, 0x00, // 245 --> х
0x05, 0xf8, 0x00, 0x80, 0x00, 0x80, 0x00, 0xf8, 0x00, 0x80, 0x01, // 246 --> ц
0x04, 0x18, 0x00, 0x20, 0x00, 0x20, 0x00, 0xf8, 0x00, // 247 --> ч
0x07, 0xf8, 0x00, 0x80, 0x00, 0x80, 0x00, 0xf8, 0x00, 0x80, 0x00, 0x80, 0x00, 0xf8, 0x00, // 248 --> ш
0x08, 0xf8, 0x00, 0x80, 0x00, 0x80, 0x00, 0xf8, 0x00, 0x80, 0x00, 0x80, 0x00, 0xf8, 0x00, 0x80, 0x01, // 249 --> щ
0x05, 0x08, 0x00, 0xf8, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0x40, 0x00, // 250 --> ъ
0x06, 0xf8, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0x40, 0x00, 0x00, 0x00, 0xf8, 0x00, // 251 --> ы
0x04, 0xf8, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0x40, 0x00, // 252 --> ь
0x04, 0x50, 0x00, 0x88, 0x00, 0xa8, 0x00, 0x70, 0x00, // 253 --> э
0x06, 0xf8, 0x00, 0x20, 0x00, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, // 254 --> ю
0x04, 0x90, 0x00, 0x68, 0x00, 0x28, 0x00, 0xf8, 0x00 // 255 --> я
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 B