Показать сообщение отдельно
Старый 28.07.2009, 16:52   #1
beisik
Нуждающийся
 
Аватар для beisik
 
Регистрация: 23.04.2008
Адрес: Брест, Беларусь
Сообщений: 53
Написано 10 полезных сообщений
(для 18 пользователей)
Проблема со шрифтами

Имеется вот такой вот юнит, реализующий загрузку шрифтов и вывод текста:
unit eFonts;

interface

var
  font: array[32..258] of image;

procedure FontInit(FileName: string; LetterWidth, LetterHeight: integer);
procedure FontPrint(str: string; x, y: integer);

implementation
  uses alpha;

procedure FontInit(FileName: string; LetterWidth, LetterHeight: integer);
var
  i, j: integer;
  fnt: image;
begin
  fnt := LoadImage('/' + FileName);
  for j := 0 to 13 do
    for i := 0 to 15 do
      font[j * 16 + i + 32] := ReplaceColor(ImageFromImage(fnt, i * LetterWidth, j * LetterHeight, LetterWidth, LetterHeight), TranslateColor(255, 0, 0, 0), 0);
end;

procedure FontPrint(str: string; x, y: integer);
var
  i, a : integer;
begin
  for i:= 0 to Length(str) - 1 do  
  begin
    a:= Ord(GetChar(str, i));
    if a > 255 then
      a := a - 848;
    DrawImage(font[a], x + i * GetImageWidth(font[32]), y);	
  end;
end;

initialization
	{ инициализация }
end.
Отказывается работать на SE (проверялось на K750). Вероятнее всего проблема в использовании ReplaceColor/TranslateColor (библиотека alpha) или в ImageFromImage. Подскажите как исправить.
__________________
diary
(Offline)
 
Ответить с цитированием