home *** CD-ROM | disk | FTP | other *** search
- {Here is a small Program that illustrates the features of GetImage/PutImage that
- you would like to use:
- }
- {$A+,B-,D+,E-,F-,G+,I-,L+,N-,O-,R-,S+,V-,X+}
- {$M 16384,0,655360}
- Uses Graph;
- (* Turbo Pascal, Width= 20 Height= 23 Colors= 16 *)
- Const
- Pac: Array[1..282] of Byte = (
- $13,$00,$16,$00,$00,$FE,$00,$00,$FE,$00,
- $00,$FE,$00,$FF,$01,$FF,$03,$FF,$80,$03,
- $FF,$80,$03,$FF,$80,$FC,$00,$7F,$07,$8F,
- $C0,$07,$8F,$C0,$07,$8F,$C0,$F8,$00,$3F,
- $1F,$77,$F0,$1F,$17,$F0,$1F,$17,$E0,$E0,
- $70,$0F,$1F,$77,$E0,$1F,$37,$E0,$1F,$37,
- $C0,$E0,$70,$1F,$3F,$77,$C0,$3F,$17,$C0,
- $3F,$17,$80,$C0,$70,$3F,$7F,$8F,$80,$7F,
- $8F,$80,$7F,$8F,$00,$80,$00,$7F,$7F,$FF,
- $00,$7F,$FF,$00,$7F,$FE,$00,$80,$00,$FF,
- $FF,$FE,$00,$FF,$FE,$00,$FF,$FC,$00,$00,
- $01,$FF,$FF,$FC,$00,$FF,$FC,$00,$FF,$F8,
- $00,$00,$03,$FF,$FF,$F8,$00,$FF,$F8,$00,
- $FF,$F0,$00,$00,$07,$FF,$FF,$F0,$00,$FF,
- $F0,$00,$FF,$E0,$00,$00,$0F,$FF,$FF,$F8,
- $00,$FF,$F8,$00,$FF,$F0,$00,$00,$07,$FF,
- $FF,$FC,$00,$FF,$FC,$00,$FF,$F8,$00,$00,
- $03,$FF,$FF,$FE,$00,$FF,$FE,$00,$FF,$FC,
- $00,$00,$01,$FF,$7F,$FF,$00,$7F,$FF,$00,
- $7F,$FE,$00,$80,$00,$FF,$7F,$FF,$80,$7F,
- $FF,$80,$7F,$FF,$00,$80,$00,$7F,$3F,$FF,
- $C0,$3F,$FF,$C0,$3F,$FF,$80,$C0,$00,$3F,
- $1F,$FF,$E0,$1F,$FF,$E0,$1F,$FF,$C0,$E0,
- $00,$1F,$1F,$FF,$F0,$1F,$FF,$F0,$1F,$FF,
- $E0,$E0,$00,$0F,$07,$FF,$C0,$07,$FF,$C0,
- $07,$FF,$C0,$F8,$00,$3F,$03,$FF,$80,$03,
- $FF,$80,$03,$FF,$80,$FC,$00,$7F,$00,$FE,
- $00,$00,$FE,$00,$00,$FE,$00,$FF,$01,$FF,
- $00,$00);
- Var Size,Result: Word;
- Gd, Gm: Integer;
- P: Pointer;
- F: File;
- begin
- { Find correct display/card-Type and initiallize stuff }
- Gd := Detect;
- InitGraph(Gd, Gm, 'd:\bp\bgi');
- if GraphResult <> grOk then Halt(1); { Error initialize }
- ClearDevice;
-
- SetFillStyle(SolidFill,Blue);
- Bar(0,0,639,479);
- P := @Pac; (* Pass the address of the *)
- (* Pac Constant to a Pointer *)
- PutImage(1,1,P^,NormalPut); (* Display image *)
-
- Size := ImageSize(1,1,20,23) { Get size of your picture };
- GetMem(P, Size); { Get memory from heap }
- GetImage(1,1,20,23,P^) { Capture picture itself in P^ };
-
- ClearDevice;
-
- Assign(F,'IMAGE');
- reWrite(F,1);
- BlockWrite(F,P^,Size,Result) { Put picture (from P^) in File F };
- if Ioresult <> 0 then Halt(2) { Error during BlockWrite I/O };
- if Result <> Size then Halt(3) { not enough data written to F };
- close(F);
- if Ioresult <> 0 then Halt(4) { Error during Close of F };
-
- PutImage(1,1,P^,NormalPut);
- FreeMem(P,Size) { Free memory. This is GPP. };
- ReadLn { Hit any key to continue };
- ClearDevice;
- CloseGraph;
- end.