自己做的一个长篇文字转GIF图片的dll组件,请高手帮忙解决一下图片高度有关问题

自己做的一个长篇文字转GIF图片的dll组件,请高手帮忙解决一下图片高度问题
由于文字大小、字体、换行,会导致图片高度动态变化。
现在的代码里高度一直不能准确。
代码如下。
使用了AAFONT   GIFimage   控件

unit   main;

{$WARN   SYMBOL_PLATFORM   OFF}

interface

uses
    ComObj,   ActiveX,   AspTlb,   dximg_TLB,   Windows,StdVcl,SysUtils,   Variants,Classes,
    ExtCtrls,   Graphics,AAFont,   AACtrls,GIFImage;

type
    Tdxasoimg   =   class(TASPObject,   Idxasoimg)
    protected
        procedure   OnEndPage;   safecall;
        procedure   OnStartPage(const   AScriptingContext:   IUnknown);   safecall;
        function   togif(const   txt,   fname,   fsize,   fcolor,   bgcolor:   WideString;
            imgwidth:   Integer):   OleVariant;   safecall;

    end;

implementation

uses   ComServ;


procedure   Tdxasoimg.OnEndPage;
begin
    inherited   OnEndPage;
end;

procedure   Tdxasoimg.OnStartPage(const   AScriptingContext:   IUnknown);
begin
    inherited   OnStartPage(AScriptingContext);
end;

//自动换行
function   GetWrapText(const   Line,   BreakStr:   string;   BreakChars:
    TSysCharSet;   MaxCol:   Integer):   string;
const
    QuoteChars   =   [ ' ' ' ',   ' " '];
var
    Col,   Pos:   Integer;
    LinePos,   LineLen:   Integer;
    BreakLen,   BreakPos:   Integer;
    QuoteChar,   CurChar:   Char;
    ExistingBreak:   Boolean;
    DoubleCharBreak:   Boolean;
begin
    if   MaxCol   <   2   then   MaxCol   :=   2;
    Col   :=   1;
    Pos   :=   1;
    LinePos   :=   1;
    BreakPos   :=   0;
    QuoteChar   :=   '   ';
    ExistingBreak   :=   False;
    DoubleCharBreak   :=   False;
    LineLen   :=   Length(Line);
    BreakLen   :=   Length(BreakStr);
    Result   :=   ' ';
    while   Pos   <=   LineLen   do
    begin
        CurChar   :=   Line[Pos];
        if   CurChar   in   LeadBytes   then
        begin
            if   Col   > =   MaxCol   -   1   then
            begin
                DoubleCharBreak   :=   True;
                BreakPos   :=   Pos   -   1;
            end;
            Inc(Pos);
            Inc(Col);
        end
        else   if   CurChar   =   BreakStr[1]   then
        begin