int x=100,y=50;
char text[]="Hello World!";
...->Canvas->TextOut(x,y,text);
Text -> Pixels -> Paint
Привет, Всем! У меня такая трабла как перевести текст в пиксели? Т.е. в TEdit'е пишем текст и/или букву. Затем загоняем ее в масив, скорее всего он должен быть двумерным, в виде пикселей, а затем отрисовываем его на, скажем, форме или любом другом компоненте (кроме текстовых).
Цитата:
Originally posted by Jackal
Привет, Всем! У меня такая трабла как перевести текст в пиксели? Т.е. в TEdit'е пишем текст и/или букву. Затем загоняем ее в масив, скорее всего он должен быть двумерным, в виде пикселей, а затем отрисовываем его на, скажем, форме или любом другом компоненте (кроме текстовых).
Привет, Всем! У меня такая трабла как перевести текст в пиксели? Т.е. в TEdit'е пишем текст и/или букву. Затем загоняем ее в масив, скорее всего он должен быть двумерным, в виде пикселей, а затем отрисовываем его на, скажем, форме или любом другом компоненте (кроме текстовых).
Хммм. А
Код:
тебе не подойдет?
Код:
img->Canvas->Font->Size = 20;
int h = img->Canvas->TextHeight(Edit1->Text);
int w = img->Canvas->TextWidth(Edit1->Text);
img->Canvas->TextOut(0, 0, Edit1->Text);
for (int x = 0; x < w; x++)
{
for (int y = 0; y < h; y++)
{
if (img->Canvas->Pixels[x][y] != clWhite)
{
img->Canvas->Font->Size = 10;
img->Canvas->TextOut(30 + x*12, y*12, "#");
}
}
}
int h = img->Canvas->TextHeight(Edit1->Text);
int w = img->Canvas->TextWidth(Edit1->Text);
img->Canvas->TextOut(0, 0, Edit1->Text);
for (int x = 0; x < w; x++)
{
for (int y = 0; y < h; y++)
{
if (img->Canvas->Pixels[x][y] != clWhite)
{
img->Canvas->Font->Size = 10;
img->Canvas->TextOut(30 + x*12, y*12, "#");
}
}
}
Но хотелось бы отрисовывать на DrawGrid'е, каждый пиксел - одна ячейка - тока руки не доходят...
Цитата:
Originally posted by Jackal
Но хотелось бы отрисовывать на DrawGrid'е, каждый пиксел - одна ячейка - тока руки не доходят...
Но хотелось бы отрисовывать на DrawGrid'е, каждый пиксел - одна ячейка - тока руки не доходят...
1. нужно опр. переменную int pls[10][50];
2. в OnCreate формы написать FillMemory(pls, 4*10*50, 0);
и
Код:
void __fastcall TForm1:: DrawGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
DrawGrid1->Canvas->Brush->Color = pls[ARow][ACol];
DrawGrid1->Canvas->FillRect(Rect);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
img->Canvas->Font->Size = 8;
int h = img->Canvas->TextHeight(Edit1->Text);
int w = img->Canvas->TextWidth(Edit1->Text);
img->Canvas->TextOut(0, 0, Edit1->Text);
for (int y = 0; y < 10; y++)
{
for (int x = 0; x < 50; x++)
{
if (img->Canvas->Pixels[x][y]==clWhite)
pls[y][x] = 0;
else
pls[y][x] = RGB(255,0,0);
}
}
DrawGrid1->Refresh();
}
int ARow, TRect &Rect, TGridDrawState State)
{
DrawGrid1->Canvas->Brush->Color = pls[ARow][ACol];
DrawGrid1->Canvas->FillRect(Rect);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
img->Canvas->Font->Size = 8;
int h = img->Canvas->TextHeight(Edit1->Text);
int w = img->Canvas->TextWidth(Edit1->Text);
img->Canvas->TextOut(0, 0, Edit1->Text);
for (int y = 0; y < 10; y++)
{
for (int x = 0; x < 50; x++)
{
if (img->Canvas->Pixels[x][y]==clWhite)
pls[y][x] = 0;
else
pls[y][x] = RGB(255,0,0);
}
}
DrawGrid1->Refresh();
}
Пасибочки, буду пробовать... :)
Каждая буква ограничивается размером 5х7, т.е. 5 ячеек ширина и 7 ячеек высота буквы на DrawGrid'е. Все предложенные варианты выходят за пределы этих значений... Может еще как-то мона зделать?
Цитата:
Originally posted by Jackal
Пробовал...неполучаецца...
Каждая буква ограничивается размером 5х7, т.е. 5 ячеек ширина и 7 ячеек высота буквы на DrawGrid'е. Все предложенные варианты выходят за пределы этих значений... Может еще как-то мона зделать?
Пробовал...неполучаецца...
Каждая буква ограничивается размером 5х7, т.е. 5 ячеек ширина и 7 ячеек высота буквы на DrawGrid'е. Все предложенные варианты выходят за пределы этих значений... Может еще как-то мона зделать?
Определяй свой шрифт 5х7 и пиши свой DrawText.
Цитата:
Originally posted by Jackal
Пробовал...неполучаецца...
Каждая буква ограничивается размером 5х7, т.е. 5 ячеек ширина и 7 ячеек высота буквы на DrawGrid'е. Все предложенные варианты выходят за пределы этих значений... Может еще как-то мона зделать?
Пробовал...неполучаецца...
Каждая буква ограничивается размером 5х7, т.е. 5 ячеек ширина и 7 ячеек высота буквы на DrawGrid'е. Все предложенные варианты выходят за пределы этих значений... Может еще как-то мона зделать?
img->Canvas->Font->Name = "Small Font";
img->Canvas->Font->Size = 6;
img->Canvas->TextOut(0, 0, Edit1->Text);
дает 5x7(за исключением W). В инете можно бы поискать шрифт 5x7