forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Проблема со шрифтами (http://forum.boolean.name/showthread.php?t=8789)

beisik 28.07.2009 16:52

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

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. Подскажите как исправить.

odd 29.07.2009 16:30

Ответ: Проблема со шрифтами
 
Для начала попробуй вставить чистку памяти.
Такой код жрет очень много оперативки.

beisik 30.07.2009 19:25

Ответ: Проблема со шрифтами
 
Спасибо, вроде бы помогло.


Часовой пояс GMT +4, время: 16:28.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot