Bitmaps Pointer
Jeg har en funktion der henter en bmp fil fra harddisken og sætter en pointer - alt jeg behøver er at skrive: Pointer := ReadBitmap(filnavn,integer,integer);funktionen ser således ud...
type
Trgb = packed record
r,
g,
b: byte;
end;
Twrap = array[0..0] of Trgb;
function readbitmap(const filepath: string; var swidth,theight: glsizei): pointer;
const
szh = sizeof(tbitmapfileheader);
szi = sizeof(tbitmapinfoheader);
var
bmpfile : file;
bfh: Tbitmapfileheader;
bmi: Tbitmapinfoheader;
t : byte;
x, size : integer;
begin
assignfile(bmpfile,filepath);
reset(bmpfile,1);
size := filesize(bmpfile)-szh-szi;
blockread(bmpfile,bfh,szh);
if bfh.bftype<>$4d42 then
raise einvalidgraphic.create('Invalid Bitmap');
blockread(bmpfile,bmi,szi);
with bmi do
begin
swidth := 256;//biwidth;
theight := 256;//biheight;
end;
getmem(result,size);
blockread(bmpfile,result^,size);
for x := 0 to swidth*theight-1 do
with Twrap(result^)[x] do
begin
t := r; r := b; b := t;
end;
close(bmpfile);
end;
Det fungere perfekt!!! Nu vil jeg bare gerne gøre det samme med TBitmap (som IKKE er indlæst fra en harddisk) jeg har defineret min TBitmap til MyBitmap, hvordan gør jeg det???... PS: som I kan er swidth og theight unødvendige da de begge er defineret til 256 - og vil altid være defineret til 256 :))...
Håber i kan hjælpe...
ZeroHero
