mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-05 19:27:11 +01:00
417 lines
17 KiB
ObjectPascal
417 lines
17 KiB
ObjectPascal
{
|
|
This file is part of the Free Pascal run time library.
|
|
Copyright (c) 1999-2000 by Michael Van Canneyt, member of
|
|
the Free Pascal development team
|
|
|
|
This file implements an interface to the gd library.
|
|
|
|
See the file COPYING.FPC, included in this distribution,
|
|
for details about the copyright.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
**********************************************************************}
|
|
unit gd;
|
|
|
|
interface
|
|
|
|
{$linklib c}
|
|
{$linklib m}
|
|
{$linklib png}
|
|
{$linklib gd}
|
|
{$ifdef hasttf}
|
|
{$linklib ttf}
|
|
{$endif hasttf}
|
|
|
|
{$PACKRECORDS C}
|
|
|
|
const
|
|
|
|
libgd = 'gd';
|
|
libc = 'c';
|
|
|
|
GD_H = 1;
|
|
DEFAULT_FONTPATH = '/usr/share/fonts/truetype';
|
|
PATHSEPARATOR = ':';
|
|
gdMaxColors = 256;
|
|
|
|
type
|
|
PByte = ^Byte;
|
|
PPByte = ^PByte;
|
|
PVoid = Pointer;
|
|
PFile = Pointer;
|
|
|
|
PGDIMAGESTRUCT = ^gdImage;
|
|
gdImage = record
|
|
pixels : PPbyte;
|
|
sx : longint;
|
|
sy : longint;
|
|
colorsTotal : longint;
|
|
red : array[0..(gdMaxColors)-1] of longint;
|
|
green : array[0..(gdMaxColors)-1] of longint;
|
|
blue : array[0..(gdMaxColors)-1] of longint;
|
|
open : array[0..(gdMaxColors)-1] of longint;
|
|
transparent : longint;
|
|
polyInts : Plongint;
|
|
polyAllocated : longint;
|
|
brush : PgdImageStruct;
|
|
tile : PgdImageStruct;
|
|
brushColorMap : array[0..(gdMaxColors)-1] of longint;
|
|
tileColorMap : array[0..(gdMaxColors)-1] of longint;
|
|
styleLength : longint;
|
|
stylePos : longint;
|
|
style : Plongint;
|
|
interlace : longint;
|
|
end;
|
|
|
|
gdImageStruct = gdImage;
|
|
pgdImage = ^gdImage;
|
|
gdImagePtr = PgdImage;
|
|
|
|
gdFont = record
|
|
nchars : longint;
|
|
offset : longint;
|
|
w : longint;
|
|
h : longint;
|
|
data : Pchar;
|
|
end;
|
|
pgdFont = ^gdFont;
|
|
gdFontPtr = PgdFont;
|
|
|
|
var
|
|
{$ifndef darwin}
|
|
gdFontLarge : gdFontPtr; cvar; external;
|
|
gdFontSmall : gdFontPtr; cvar; external;
|
|
gdFontGiant : gdFontPtr; cvar; external;
|
|
gdFontMediumBold : gdFontPtr; cvar; external;
|
|
gdFontTiny : gdFontPtr; cvar; external;
|
|
{$else darwin}
|
|
gdFontLarge : gdFontPtr; external libgd name 'gdFontLarge';
|
|
gdFontSmall : gdFontPtr; external libgd name 'gdFontSmall';
|
|
gdFontGiant : gdFontPtr; external libgd name 'gdFontGiant';
|
|
gdFontMediumBold : gdFontPtr; external libgd name 'gdFontMediumBold';
|
|
gdFontTiny : gdFontPtr; external libgd name 'gdFontTiny';
|
|
{$endif darwin}
|
|
|
|
const
|
|
gdDashSize = 4;
|
|
gdStyled = -(2);
|
|
gdBrushed = -(3);
|
|
gdStyledBrushed = -(4);
|
|
gdTiled = -(5);
|
|
gdTransparent = -(6);
|
|
|
|
type
|
|
|
|
gdSource = record
|
|
source : function (context:Pointer; buffer:Pchar; len:longint):longint;cdecl;
|
|
context : pointer;
|
|
end;
|
|
pgdSource = ^gdSource;
|
|
gdSourcePtr = PgdSource;
|
|
|
|
gdSink = record
|
|
sink : function (context:Pvoid; buffer:Pchar; len:longint):longint;cdecl;
|
|
context : pointer;
|
|
end;
|
|
pgdSink = ^gdSink;
|
|
gdSinkPtr = PgdSink;
|
|
|
|
gdPoint = record
|
|
x : longint;
|
|
y : longint;
|
|
end;
|
|
pgdPoint = ^gdPoint;
|
|
gdPointPtr = PgdPoint;
|
|
|
|
pgdIOCtx = ^gdIOCtx;
|
|
gdIOCtx = record
|
|
getC : function (_para1:PgdIOCtx):longint;cdecl;
|
|
getBuf : function (_para1:PgdIOCtx; _para2:pointer; _para3:longint):longint;
|
|
putC : procedure (_para1:PgdIOCtx; _para2:longint);
|
|
putBuf : function (_para1:PgdIOCtx; _para2:pointer; _para3:longint):longint;
|
|
seek : function (_para1:PgdIOCtx; _para2:longint):longint;
|
|
tell : function (_para1:PgdIOCtx):longint;
|
|
free : procedure (_para1:PgdIOCtx);
|
|
end;
|
|
GDIOCTXPTR = pgdIOCtx;
|
|
|
|
{ Translated from gd_io.h}
|
|
function fopen(a,b:pchar):pFile; cdecl;external libc;
|
|
procedure fclose(a:pFile); cdecl;external libc;
|
|
|
|
procedure Putword(w:longint; ctx:PgdIOCtx); cdecl; external libgd;
|
|
procedure Putchar(c:longint; ctx:PgdIOCtx); cdecl; external libgd;
|
|
procedure gdPutC(c:byte; ctx:PgdIOCtx); cdecl; external libgd;
|
|
function gdPutBuf(_para1:pointer; _para2:longint; _para3:PgdIOCtx):longint; cdecl; external libgd;
|
|
procedure gdPutWord(w:longint; ctx:PgdIOCtx); cdecl; external libgd;
|
|
procedure gdPutInt(w:longint; ctx:PgdIOCtx); cdecl; external libgd;
|
|
function gdGetC(ctx:PgdIOCtx):longint; cdecl; external libgd;
|
|
function gdGetBuf(_para1:pointer; _para2:longint; _para3:PgdIOCtx):longint; cdecl; external libgd;
|
|
function gdGetByte(result:Plongint; ctx:PgdIOCtx):longint; cdecl; external libgd;
|
|
function gdGetWord(result:Plongint; ctx:PgdIOCtx):longint; cdecl; external libgd;
|
|
function gdGetInt(result:Plongint; ctx:PgdIOCtx):longint; cdecl; external libgd;
|
|
function gdSeek(ctx:PgdIOCtx; _para2:longint):longint; cdecl; external libgd;
|
|
function gdTell(ctx:PgdIOCtx):longint; cdecl; external libgd;
|
|
|
|
function gdImageCreate(sx:longint; sy:longint):gdImagePtr; cdecl; external libgd;
|
|
function gdImageCreateFromPng(fd:PFILE):gdImagePtr; cdecl; external libgd;
|
|
function gdImageCreateFromPngCtx(inIO:gdIOCtxPtr):gdImagePtr; cdecl; external libgd;
|
|
function gdImageCreateFromWBMP(inFile:PFILE):gdImagePtr; cdecl; external libgd;
|
|
function gdImageCreateFromWBMPCtx(infile:PgdIOCtx):gdImagePtr; cdecl; external libgd;
|
|
function gdImageCreateFromJpeg(infile:PFILE):gdImagePtr; cdecl; external libgd;
|
|
function gdImageCreateFromJpegCtx(infile:PgdIOCtx):gdImagePtr; cdecl; external libgd;
|
|
function gdImageCreateFromPngSource(infile:gdSourcePtr):gdImagePtr; cdecl; external libgd;
|
|
function gdImageCreateFromGd(infile:PFILE):gdImagePtr; cdecl; external libgd;
|
|
function gdImageCreateFromGdCtx(infile:gdIOCtxPtr):gdImagePtr; cdecl; external libgd;
|
|
function gdImageCreateFromGd2(infile:PFILE):gdImagePtr; cdecl; external libgd;
|
|
function gdImageCreateFromGd2Ctx(infile:gdIOCtxPtr):gdImagePtr; cdecl; external libgd;
|
|
function gdImageCreateFromGd2Part(infile:PFILE; srcx:longint; srcy:longint; w:longint; h:longint):gdImagePtr; cdecl; external libgd;
|
|
function gdImageCreateFromGd2PartCtx(infile:gdIOCtxPtr; srcx:longint; srcy:longint; w:longint; h:longint):gdImagePtr; cdecl; external libgd;
|
|
function gdImageCreateFromXbm(fd:PFILE):gdImagePtr; cdecl; external libgd;
|
|
procedure gdImageDestroy(im:gdImagePtr); cdecl; external libgd;
|
|
procedure gdImageSetPixel(im:gdImagePtr; x:longint; y:longint; color:longint); cdecl; external libgd;
|
|
function gdImageGetPixel(im:gdImagePtr; x:longint; y:longint):longint; cdecl; external libgd;
|
|
procedure gdImageLine(im:gdImagePtr; x1:longint; y1:longint; x2:longint; y2:longint; color:longint); cdecl; external libgd;
|
|
procedure gdImageDashedLine(im:gdImagePtr; x1:longint; y1:longint; x2:longint; y2:longint; color:longint); cdecl; external libgd;
|
|
procedure gdImageRectangle(im:gdImagePtr; x1:longint; y1:longint; x2:longint; y2:longint; color:longint); cdecl; external libgd;
|
|
procedure gdImageFilledRectangle(im:gdImagePtr; x1:longint; y1:longint; x2:longint; y2:longint; color:longint); cdecl; external libgd;
|
|
function gdImageBoundsSafe(im:gdImagePtr; x:longint; y:longint):longint; cdecl; external libgd;
|
|
procedure gdImageChar(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; c:longint; color:longint); cdecl; external libgd;
|
|
procedure gdImageCharUp(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; c:longint; color:longint); cdecl; external libgd;
|
|
procedure gdImageString(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; s:Pbyte; color:longint); cdecl; external libgd;
|
|
procedure gdImageStringUp(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; s:Pbyte; color:longint); cdecl; external libgd;
|
|
procedure gdImageString16(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; s:Pword; color:longint); cdecl; external libgd;
|
|
procedure gdImageStringUp16(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; s:Pword; color:longint); cdecl; external libgd;
|
|
{$ifdef HasTTF}
|
|
function gdImageStringTTF(im:PgdImage; brect:Plongint; fg:longint; fontlist:Pchar; ptsize:double; angle:double; x:longint; y:longint; astring:Pchar):Pchar; cdecl; external libgd;
|
|
function gdImageStringFT(im:PgdImage; brect:Plongint; fg:longint; fontlist:Pchar; ptsize:double; angle:double; x:longint; y:longint; astring:Pchar):Pchar; cdecl; external libgd;
|
|
{$endif hasTTF}
|
|
procedure gdImagePolygon(im:gdImagePtr; p:gdPointPtr; n:longint; c:longint); cdecl; external libgd;
|
|
procedure gdImageFilledPolygon(im:gdImagePtr; p:gdPointPtr; n:longint; c:longint); cdecl; external libgd;
|
|
function gdImageColorAllocate(im:gdImagePtr; r:longint; g:longint; b:longint):longint; cdecl; external libgd;
|
|
function gdImageColorClosest(im:gdImagePtr; r:longint; g:longint; b:longint):longint; cdecl; external libgd;
|
|
function gdImageColorExact(im:gdImagePtr; r:longint; g:longint; b:longint):longint; cdecl; external libgd;
|
|
function gdImageColorResolve(im:gdImagePtr; r:longint; g:longint; b:longint):longint; cdecl; external libgd;
|
|
procedure gdImageColorDeallocate(im:gdImagePtr; color:longint); cdecl; external libgd;
|
|
procedure gdImageColorTransparent(im:gdImagePtr; color:longint); cdecl; external libgd;
|
|
procedure gdImagePaletteCopy(dst:gdImagePtr; src:gdImagePtr); cdecl; external libgd;
|
|
procedure gdImagePng(im:gdImagePtr; _out:PFILE); cdecl; external libgd;
|
|
procedure gdImagePngCtx(im:gdImagePtr; _out:PgdIOCtx); cdecl; external libgd;
|
|
procedure gdImageWBMP(image:gdImagePtr; fg:longint; _out:PFILE); cdecl; external libgd;
|
|
procedure gdImageWBMPCtx(image:gdImagePtr; fg:longint; _out:PgdIOCtx); cdecl; external libgd;
|
|
procedure gdFree(m:Pvoid); cdecl; external libgd;
|
|
function gdImageWBMPPtr(im:gdImagePtr; size:Plongint; fg:longint):pointer; cdecl; external libgd;
|
|
procedure gdImageJpeg(im:gdImagePtr; _out:PFILE; quality:longint); cdecl; external libgd;
|
|
procedure gdImageJpegCtx(im:gdImagePtr; _out:PgdIOCtx; quality:longint); cdecl; external libgd;
|
|
function gdImageJpegPtr(im:gdImagePtr; size:Plongint; quality:longint):pointer; cdecl; external libgd;
|
|
procedure gdImagePngToSink(im:gdImagePtr; _out:gdSinkPtr); cdecl; external libgd;
|
|
procedure gdImageGd(im:gdImagePtr; _out:PFILE); cdecl; external libgd;
|
|
procedure gdImageGd2(im:gdImagePtr; _out:PFILE; cs:longint; fmt:longint); cdecl; external libgd;
|
|
function gdImagePngPtr(im:gdImagePtr; size:Plongint):pointer; cdecl; external libgd;
|
|
function gdImageGdPtr(im:gdImagePtr; size:Plongint):pointer; cdecl; external libgd;
|
|
function gdImageGd2Ptr(im:gdImagePtr; cs:longint; fmt:longint; size:Plongint):pointer; cdecl; external libgd;
|
|
procedure gdImageArc(im:gdImagePtr; cx:longint; cy:longint; w:longint; h:longint; s:longint; e:longint; color:longint); cdecl; external libgd;
|
|
procedure gdImageFillToBorder(im:gdImagePtr; x:longint; y:longint; border:longint; color:longint); cdecl; external libgd;
|
|
procedure gdImageFill(im:gdImagePtr; x:longint; y:longint; color:longint); cdecl; external libgd;
|
|
procedure gdImageCopy(dst:gdImagePtr; src:gdImagePtr; dstX:longint; dstY:longint; srcX:longint; srcY:longint; w:longint; h:longint); cdecl; external libgd;
|
|
procedure gdImageCopyMerge(dst:gdImagePtr; src:gdImagePtr; dstX:longint; dstY:longint; srcX:longint; srcY:longint; w:longint; h:longint; pct:longint); cdecl; external libgd;
|
|
procedure gdImageCopyMergeGray(dst:gdImagePtr; src:gdImagePtr; dstX:longint; dstY:longint; srcX:longint; srcY:longint; w:longint; h:longint; pct:longint); cdecl; external libgd;
|
|
procedure gdImageCopyResized(dst:gdImagePtr; src:gdImagePtr; dstX:longint; dstY:longint; srcX:longint; srcY:longint; dstW:longint; dstH:longint; srcW:longint; srcH:longint); cdecl; external libgd;
|
|
procedure gdImageSetBrush(im:gdImagePtr; brush:gdImagePtr); cdecl; external libgd;
|
|
procedure gdImageSetTile(im:gdImagePtr; tile:gdImagePtr); cdecl; external libgd;
|
|
procedure gdImageSetStyle(im:gdImagePtr; style:Plongint; noOfPixels:longint); cdecl; external libgd;
|
|
procedure gdImageInterlace(im:gdImagePtr; interlaceArg:longint); cdecl; external libgd;
|
|
|
|
{ Translated macros }
|
|
function gdImageSX(im : pgdimage) : longint;
|
|
function gdImageSY(im : pgdimage) : longint;
|
|
function gdImageColorsTotal(im : pgdimage) : longint;
|
|
function gdImageRed(im : pgdimage; c : longint): longint;
|
|
function gdImageGreen(im : pgdimage; c : longint): longint;
|
|
function gdImageBlue(im : pgdimage; c : longint): longint;
|
|
function gdImageGetTransparent(im : pgdimage) : longint;
|
|
function gdImageGetInterlaced(im : pgdimage) : longint;
|
|
|
|
function gdNewFileCtx(_para1:PFILE):PgdIOCtx; cdecl; external libgd;
|
|
function gdNewDynamicCtx(_para1:longint; _para2:pointer):PgdIOCtx; cdecl; external libgd;
|
|
function gdNewSSCtx(infile:gdSourcePtr; _out:gdSinkPtr):PgdIOCtx; cdecl; external libgd;
|
|
function gdDPExtractData(ctx:pointer; size:Plongint):pointer; cdecl; external libgd;
|
|
|
|
{overloaded pascal functions}
|
|
function fopen(a,b:string):pFile;
|
|
procedure gdImageChar(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; c:char; color:longint);
|
|
procedure gdImageCharUp(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; c:char; color:longint);
|
|
procedure gdImageString(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; s:string; color:longint);
|
|
procedure gdImageStringUp(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; s:string; color:longint);
|
|
procedure gdImageString16(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; s:string; color:longint);
|
|
procedure gdImageStringUp16(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; s:string; color:longint);
|
|
{$ifdef hasttf}
|
|
function gdImageStringTTF(im:PgdImage; brect:Plongint; fg:longint; fontlist:string; ptsize:double; angle:double; x:longint; y:longint; astring:string): string;
|
|
function gdImageStringFT(im:PgdImage; brect:Plongint; fg:longint; fontlist:string; ptsize:double; angle:double; x:longint; y:longint; astring:string):string;
|
|
{$endif}
|
|
|
|
|
|
const
|
|
GD2_CHUNKSIZE = 128;
|
|
GD2_CHUNKSIZE_MIN = 64;
|
|
GD2_CHUNKSIZE_MAX = 4096;
|
|
GD2_VERS = 1;
|
|
GD2_ID = 'gd2';
|
|
GD2_FMT_RAW = 1;
|
|
GD2_FMT_COMPRESSED = 2;
|
|
|
|
function gdImageCompare(im1:gdImagePtr; im2:gdImagePtr):longint;cdecl; external libgd;
|
|
|
|
const
|
|
GD_CMP_IMAGE = 1;
|
|
GD_CMP_NUM_COLORS = 2;
|
|
GD_CMP_COLOR = 4;
|
|
GD_CMP_SIZE_X = 8;
|
|
GD_CMP_SIZE_Y = 16;
|
|
GD_CMP_TRANSPARENT = 32;
|
|
GD_CMP_BACKGROUND = 64;
|
|
GD_CMP_INTERLACE = 128;
|
|
GD_RESOLUTION = 96;
|
|
|
|
implementation
|
|
|
|
function gdImageSX(im : pgdimage) : longint;
|
|
begin
|
|
gdImageSX:=im^.sx;
|
|
end;
|
|
function gdImageSY(im : pgdimage) : longint;
|
|
begin
|
|
gdImageSY:=im^.sy;
|
|
end;
|
|
function gdImageColorsTotal(im : pgdimage) : longint;
|
|
begin
|
|
gdImageColorsTotal:=im^.colorsTotal;
|
|
end;
|
|
function gdImageGetTransparent(im : pgdimage) : longint;
|
|
begin
|
|
gdImageGetTransparent:=im^.transparent;
|
|
end;
|
|
function gdImageGetInterlaced(im : pgdimage) : longint;
|
|
begin
|
|
gdImageGetInterlaced:=im^.interlace;
|
|
end;
|
|
|
|
function gdImageRed(im : pgdimage; c : longint): longint;
|
|
|
|
begin
|
|
gdImageRed:=im^.red[c];
|
|
end;
|
|
|
|
function gdImageGreen(im : pgdimage; c : longint): longint;
|
|
|
|
begin
|
|
gdImageGreen := im^.green[c];
|
|
end;
|
|
|
|
function gdImageBlue(im : pgdimage; c : longint): longint;
|
|
|
|
begin
|
|
gdImageBlue := im^.blue[c];
|
|
end;
|
|
|
|
function fopen(a,b:string):pFile;
|
|
|
|
begin
|
|
{$ifopt h+}
|
|
fopen:=fopen(pchar(a),pchar(b));
|
|
{$else}
|
|
a:=a+#0;
|
|
b:=b+#0;
|
|
fopen:=fopen(@a[1],@b[1]);
|
|
{$endif}
|
|
end;
|
|
|
|
procedure gdImageChar(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; c:char; color:longint);
|
|
|
|
begin
|
|
gdimagechar(im,f,x,y,ord(c),color);
|
|
end;
|
|
|
|
procedure gdImageCharUp(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; c:char; color:longint);
|
|
|
|
begin
|
|
gdimagecharup(im,f,x,y,ord(c),color);
|
|
end;
|
|
|
|
procedure gdImageString(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; s:string; color:longint);
|
|
|
|
begin
|
|
{$ifopt h+}
|
|
gdImageString(im,f,x,y,pbyte(pchar(s)),color);
|
|
{$else}
|
|
s:=s+#0;
|
|
gdImageString(im,f,x,y,@s[1],color);
|
|
{$endif}
|
|
end;
|
|
|
|
procedure gdImageStringUp(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; s:string; color:longint);
|
|
|
|
begin
|
|
{$ifopt h+}
|
|
gdImageStringUp(im,f,x,y,pbyte(pchar(s)),color);
|
|
{$else}
|
|
s:=s+#0;
|
|
gdImageStringUp(im,f,x,y,pbyte(@s[1]),color);
|
|
{$endif}
|
|
end;
|
|
|
|
procedure gdImageString16(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; s:string; color:longint);
|
|
|
|
begin
|
|
{$ifopt h+}
|
|
gdImageString16(im,f,x,y,pword(pchar(s)),color);
|
|
{$else}
|
|
s:=s+#0;
|
|
gdImageString16(im,f,x,y,pword(@s[1]),color);
|
|
{$endif}
|
|
end;
|
|
|
|
procedure gdImageStringUp16(im:gdImagePtr; f:gdFontPtr; x:longint; y:longint; s:string; color:longint);
|
|
|
|
begin
|
|
{$ifopt h+}
|
|
gdImageStringUp16(im,f,x,y,pword(pchar(s)),color);
|
|
{$else}
|
|
s:=s+#0;
|
|
gdImageStringUp16(im,f,x,y,pword(@s[1]),color);
|
|
{$endif}
|
|
end;
|
|
|
|
{$ifdef hasttf}
|
|
|
|
function gdImageStringTTF(im:PgdImage; brect:Plongint; fg:longint; fontlist:string; ptsize:double; angle:double; x:longint; y:longint; astring:string): string;
|
|
|
|
begin
|
|
{$ifopt h+}
|
|
gdImageStringTTF:=strpas(gdImageStringTTF(im,brect,fg,pchar(fontlist),ptsize,angle,x,y,pchar(astring)));
|
|
{$else}
|
|
fontlist:=fornlist+#0;
|
|
astring:=astring+#0;
|
|
gdImageStringTTF:=strpas(gdImageStringTTF(im,brect,fg,@fontlist[1],ptsize,angle,x,y,@astring[1]));
|
|
{$endif}
|
|
end;
|
|
|
|
function gdImageStringFT(im:PgdImage; brect:Plongint; fg:longint; fontlist:string; ptsize:double; angle:double; x:longint; y:longint; astring:string):string;
|
|
|
|
begin
|
|
{$ifopt h+}
|
|
gdImageStringFT:=strpas(gdImageStringFT(im,brect,fg,pchar(fontlist),ptsize,angle,x,y,pchar(astring)));
|
|
{$else}
|
|
fontlist:=fornlist+#0;
|
|
astring:=astring+#0;
|
|
gdImageStringFT:=strpas(gdImageStringFT(im,brect,fg,@fontlist[1],ptsize,angle,x,y,@astring[1]));
|
|
|
|
{$endif}
|
|
end;
|
|
{$endif}
|
|
|
|
end.
|