| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- Uses Graph;
- const
- table :array [0..15] of byte = (0,1,2,Yellow,Blue,5,6,7,8,9,10,Yellow,LightBlue,13,14,15);
- var
- inp,outp : file;
- p : pointer;
- Size : Word;
- i,j : word;
- x,y : word;
- val : byte;
- gD,gM : Integer;
- begin
- gD:=VGA;
- gM:=VGAMed;
- InitGraph(gD,gM,'');
- Assign(outp,'BG2.dat');
- ReWrite(outp,1);
- Assign(inp,'BG.bmp');
- Reset(inp,1);
- Seek(INP,$12);
- BlockRead(inp,x,4);
- BlockRead(inp,y,4);
- Seek(Inp,$76);
- for i := 0 to y-1 do
- for j := 0 to (x-1) shr 1 do
- begin
- BlockRead(INP,val,1);
- PutPixel(j*2+1,479-i, table[val and $F]);
- PutPixel(j*2,479-i,table[(val shr 4) and $F]);
- end;
- Close(INP);
- Size := ImageSize(0,0,(x shr 1),(y shr 1)-1);
- i:=4;
- BlockWrite(OUTP,i,1);
- GetMem(P,Size);
- BlockWrite(OUTP,Size,2);
- i:=0;
- BlockWrite(OUTP,i,2);
- BlockWrite(OUTP,i,2);
- GetImage(0,0,(x shr 1)-1,(y shr 1)-1,P^);
- BlockWrite(OUTP,P^,Size);
- BlockWrite(OUTP,Size,2);
- i:=x shr 1;
- BlockWrite(OUTP,i,2);
- i:=0;
- BlockWrite(OUTP,i,2);
- GetImage(x shr 1,0,x-1,(y shr 1)-1,P^);
- BlockWrite(OUTP,P^,Size);
- BlockWrite(OUTP,Size,2);
- i:=0;
- BlockWrite(OUTP,i,2);
- i:=y shr 1;
- BlockWrite(OUTP,i,2);
- GetImage(0,y shr 1,(x shr 1)-1,y-1,P^);
- BlockWrite(OUTP,P^,Size);
- BlockWrite(OUTP,Size,2);
- i:=x shr 1;
- BlockWrite(OUTP,i,2);
- i:=y shr 1;
- BlockWrite(OUTP,i,2);
- GetImage(x shr 1,y shr 1,x-1,y-1,P^);
- BlockWrite(OUTP,P^,Size);
- FreeMem(P,Size);
- ReadLn;
- CloseGraph;
- Close(OUTP);
- end.
|