Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Text -> Pixels -> Paint

468
20 февраля 2005 года
Jackal
48 / / 20.09.2000
Привет, Всем! У меня такая трабла как перевести текст в пиксели? Т.е. в TEdit'е пишем текст и/или букву. Затем загоняем ее в масив, скорее всего он должен быть двумерным, в виде пикселей, а затем отрисовываем его на, скажем, форме или любом другом компоненте (кроме текстовых).
301
20 февраля 2005 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by Jackal
Привет, Всем! У меня такая трабла как перевести текст в пиксели? Т.е. в TEdit'е пишем текст и/или букву. Затем загоняем ее в масив, скорее всего он должен быть двумерным, в виде пикселей, а затем отрисовываем его на, скажем, форме или любом другом компоненте (кроме текстовых).


Хммм. А

 
Код:
int x=100,y=50;
char text[]="Hello World!";
...->Canvas->TextOut(x,y,text);

тебе не подойдет?
468
20 февраля 2005 года
Jackal
48 / / 20.09.2000
мне вот так советуют
Код:
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, "#");
            }
        }
    }


Но хотелось бы отрисовывать на DrawGrid'е, каждый пиксел - одна ячейка - тока руки не доходят...
368
20 февраля 2005 года
rostyslav
629 / / 13.07.2004
Цитата:
Originally posted by Jackal
Но хотелось бы отрисовывать на 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();
}
468
20 февраля 2005 года
Jackal
48 / / 20.09.2000
Пасибочки, буду пробовать... :)
468
24 февраля 2005 года
Jackal
48 / / 20.09.2000
Пробовал...неполучаецца...
Каждая буква ограничивается размером 5х7, т.е. 5 ячеек ширина и 7 ячеек высота буквы на DrawGrid'е. Все предложенные варианты выходят за пределы этих значений... Может еще как-то мона зделать?
259
24 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Jackal
Пробовал...неполучаецца...
Каждая буква ограничивается размером 5х7, т.е. 5 ячеек ширина и 7 ячеек высота буквы на DrawGrid'е. Все предложенные варианты выходят за пределы этих значений... Может еще как-то мона зделать?


Определяй свой шрифт 5х7 и пиши свой DrawText.

368
24 февраля 2005 года
rostyslav
629 / / 13.07.2004
Цитата:
Originally posted by Jackal
Пробовал...неполучаецца...
Каждая буква ограничивается размером 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

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог