Нашел еще информации на вики. На словах все просто.
Также нашел решение на C++.
Код:
int shtrixcode[13] = {4,6,0,1,2,5,0,2,0,2,1,7,4};
int sxem_table[10][12] = { {0,0,0,0,0,0,1,1,1,1,1,1},
{0,0,2,0,2,2,1,1,1,1,1,1},
{0,0,2,2,0,2,1,1,1,1,1,1},
{0,0,2,2,2,0,1,1,1,1,1,1},
{0,2,0,0,2,2,1,1,1,1,1,1},
{0,2,2,0,0,2,1,1,1,1,1,1},
{0,2,2,2,0,0,1,1,1,1,1,1},
{0,2,0,2,0,2,1,1,1,1,1,1},
{0,2,0,2,2,0,1,1,1,1,1,1},
{0,2,2,0,2,0,1,1,1,1,1,1} };
bool LGR_codes[10][3][7] = { { {0,0,0,1,1,0,1}, {1,1,1,0,0,1,0}, {0,1,0,0,1,1,1} },
{ {0,0,1,1,0,0,1}, {1,1,0,0,1,1,0}, {0,1,1,0,0,1,1} },
{ {0,0,1,0,0,1,1}, {1,1,0,1,1,0,0}, {0,0,1,1,0,1,1} },
{ {0,1,1,1,1,0,1}, {1,0,0,0,0,1,0}, {0,1,0,0,0,0,1} },
{ {0,1,0,0,0,1,1}, {1,0,1,1,1,0,0}, {0,0,1,1,1,0,1} },
{ {0,1,1,0,0,0,1}, {1,0,0,1,1,1,0}, {0,1,1,1,0,0,1} },
{ {0,1,0,1,1,1,1}, {1,0,1,0,0,0,0}, {0,0,0,0,1,0,1} },
{ {0,1,1,1,0,1,1}, {1,0,0,0,1,0,0}, {0,0,1,0,0,0,1} },
{ {0,1,1,0,1,1,1}, {1,0,0,1,0,0,0}, {0,0,0,1,0,0,1} },
{ {0,0,0,1,0,1,1}, {1,1,1,0,1,0,0}, {0,0,1,0,1,1,1} } };
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
int i_sxem = shtrixcode[0];
bool visual_strixcode[95];
int visual_height[95];
for ( int i = 0; i < 95; i++ ) visual_height[i] = 40;
int v_count = 0;
String s = "";
// -------------------------- íà÷àëüíûå 2 ÷åðíûõ øòðèõà -------------------------
visual_strixcode[v_count] = 1; visual_height[v_count] = 45; v_count++;
visual_strixcode[v_count] = 0; visual_height[v_count] = 45; v_count++;
visual_strixcode[v_count] = 1; visual_height[v_count] = 45; v_count++;
// -------------------------------------------------------------------------------------
// --------------------------------- ëåâàÿ ÷àñòü --------------------------------------
for ( int i = 1; i < 7; i++ )
{
int cifra = shtrixcode[i];
for ( int j = 0; j < 7; j++ )
{
visual_strixcode[v_count++] = LGR_codes[cifra][sxem_table[i_sxem][i-1]][j];
s += String((int)visual_strixcode[v_count-1]);
}
s += "\r\n";
}
// -------------------------------------------------------------------------------------
s += "\r\n";
// ----------------------------- 2 ÷åðíûõ øòðèõà ïî ñåðåäèíå ---------------------------
visual_strixcode[v_count] = 0; visual_height[v_count] = 45; v_count++;
visual_strixcode[v_count] = 1; visual_height[v_count] = 45; v_count++;
visual_strixcode[v_count] = 0; visual_height[v_count] = 45; v_count++;
visual_strixcode[v_count] = 1; visual_height[v_count] = 45; v_count++;
visual_strixcode[v_count] = 0; visual_height[v_count] = 45; v_count++;
// -------------------------------------------------------------------------------------
// --------------------------------- ïðàâàÿ ÷àñòü --------------------------------------
for ( int i = 7; i < 13; i++ )
{
int cifra = shtrixcode[i];
for ( int j = 0; j < 7; j++ )
{
visual_strixcode[v_count++] = LGR_codes[cifra][sxem_table[i_sxem][i-1]][j];
s += String((int)visual_strixcode[v_count-1]);
}
s += "\r\n";
}
// -------------------------------------------------------------------------------------
//ShowMessage(s);
// -------------------------- ïîñëåäíèå 2 ÷åðíûõ øòðèõà -------------------------
visual_strixcode[v_count] = 1; visual_height[v_count] = 45; v_count++;
visual_strixcode[v_count] = 0; visual_height[v_count] = 45; v_count++;
visual_strixcode[v_count] = 1; visual_height[v_count] = 45; v_count++;
// -------------------------------------------------------------------------------
// ---------------------------------- îòðèñîâêà ---------------------------------
for ( int i = 0; i < 96; i++ )
{
if (visual_strixcode[i]) Image1->Canvas->Pen->Color = clBlack;
else Image1->Canvas->Pen->Color = clWhite;
Image1->Canvas->MoveTo(i, 0);
Image1->Canvas->LineTo(i, visual_height[i]);
}
// ------------------------------------------------------------------------------
}
Попробую реализовать на Autoit, по идее даже не нужен шрифт. Нужно только прорисовать графику. Мне не принципиально сохранять в img файл. Можно просто вывести в gui.
Попробую написать код. Но все же буду признателен за помощь.