Имеется вот такой вот юнит, реализующий загрузку шрифтов и вывод текста:
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. Подскажите как исправить.