Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание графического шрифта для проги. вивод текста с основой картинкой. 
V
    Опции темы
Vaskevych
  Дата 6.4.2012, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi Developer



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 30.12.2009
Где: UA. Rovno

Репутация: нет
Всего: нет



Всем привет.
Вопрос следующий есть изображение:
user posted image
и росшифровка к нему " 0123456"

Как можно отрисовать текст например "00 00".
PM   Вверх
Ne1tr1n0
Дата 8.4.2012, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 1.3.2009

Репутация: 6
Всего: 8



Самый простой вариант - кадрировать изображение в фотошопе (разбить на отдельные цифры, благо они я смотрю одинаковой ширины), хранить изображения цифр в ресурсах, а в проге загружать их в массив и рисовать на канвасе каждую цифру отдельно со сдвигом на ширину цифры, обращаясь к элементам массива по индексу (он будет равен цифре, которую необходимо отрисовать). Если же надо редактировать, эти цифры, или изменять их размеры, то лучше работать с векторными картинками, в частности можно запилить свой шрифт в каком-нить корел драве или одной из других программ для создания шрифтов. 
Вечером может попробую что-нить сваять, сейчас нет под рукой ничего.
PM MAIL   Вверх
RelictOs
Дата 8.4.2012, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 14.2.2012

Репутация: нет
Всего: 1



Код

var
  numbers : array[0..9] of TBitmap; //массив картинок
  x : integer; //сдвиг

...

procedure TForm1.FormActivate(Sender: TObject);
begin
 numbers[0] := TBitmap.Create; //создать объект
 numbers[0].LoadFromFile('файл.bmp'); //загрузить из файла
 {и так до 9}
 x := 0; // обнуляем сдвиг по оси х холста формы
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 case Key of
 '0'..'9':
  begin
   x := x + numbers[strtoint(key)].Width; //увеличиваем х на ширину картинки
   Form1.Canvas.Draw(x,20,numbers[strtoint(key)]); //Рисуем нашу картинку
  end;
 end;
end;


в общих чертах будет выглядеть так. фишки вроде стирания и переноса строки можно реализовать по аналогии
PM MAIL ICQ Skype   Вверх
Akella
Дата 8.4.2012, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



А что, нельзя создать стандартный True Type шрифт?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0749 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.