| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 
 | program bmp;
 
uses GRX;
 
var BmpWidth, BmpHeight,fenetre : integer;
var grc,grcscreen,null2 : grcontextptr;
var null1 : MemPtr;
 
procedure Charger_Bmp(s : string);
    var f : file of byte;
    var color : array[1..4] of byte;
    var x,y,z : integer;
begin
    grcscreen:=grscreencontext;
    assign(f,s);
    reset(f);
    seek(f,18);
    read(f,color[1],color[2],color[3],color[4]);
    BmpWidth:=color[1]+color[2]*256+color[3]*65536+color[4]*16777216;
    z:=(BmpWidth mod 4);
    read(f,color[1],color[2],color[3],color[4]);
    BmpHeight:=color[1]+color[2]*256+color[3]*65536+color[4]*16777216;
    grc:=grcreatecontext(BmpWidth,BmpHeight,null1,null2);
    grsetcontext(grc);
    seek(f,54);
    for y:=BmpHeight downto 1 do begin
        for x:=1 to BmpWidth do begin
            read(f,color[1],color[2],color[3]);
            grplot(x,y,gralloccolor(color[3],color[2],color[1]));
        end;
        for x:=1 to z do read(f,color[4]);
    end;
    grsetcontext(grcscreen);
end;
 
procedure Afficher_Bmp(x0,y0 : integer);
begin
    grbitblt(grcscreen,x0,y0,grc,0,0,BmpWidth-1,BmpHeight-1,GrWRITE);
end;
 
begin
 
    fenetre:=grsetmode(24,800,600,32,0,0);
    Charger_Bmp('test.bmp');
    Afficher_Bmp(0,0);
    grkeyread;
 
end. | 
Partager