home *** CD-ROM | disk | FTP | other *** search
- PROGRAM ShowPCX;
-
- USES Crt, Graph, Dos, PCXUNIT, EGAVG;
-
- VAR
-
- g : FILE;
- key : Char;
- co : Byte;
- n2,n3 : String;
- driver,Mode,so : Integer;
- Color : ARRAY[0..640,1..4] OF Boolean;
- pix,Size,re : Word;
- nx,ny,DX,dy,d2x,d2y: Integer;
- x1,x2,y1,y2 : Integer;
-
- BEGIN;
-
- IF RegisterBGIDriver(@EGAVGA)<0 THEN Exit;
- ClrScr;
- WriteLn; WriteLn; WriteLn;
- WriteLn(' Unter welchen Namen soll das Bild nacher gespeichert werden ?');
- Write (' Name:'); ReadLn(n2);
- WriteLn;
- WriteLn(' Wie heißt das zu ladende Paintbrush-Bild (RETURN wenn es von');
- WriteLn(' einem Utility geladen werden soll)');
- Write(' Name:');
- ReadLn(n);
-
- {Bitte folgende Befehle UNBEDINGT an den erwuenschten Graphikmode}
- {angleichen: }
-
- driver:=EGA; Mode:=EGAHi;
- InitGraph(driver,Mode,'');
- ClearDevice;
- IF n<>'' THEN LOADPIC ELSE ReadLn;
- nx:=0; ny:=0; DX:=0; dy:=0; pix:=0; d2x:=0; d2y:=0;
- REPEAT;
- pix:=GetPixel(nx,ny);
- IF pix<>Black THEN
- PutPixel(nx,ny,Black) ELSE
- PutPixel(nx,ny,Yellow);
- REPEAT;
- key:=ReadKey;
- UNTIL (key='8') OR (key='4') OR (key='6') OR (key='2') OR
- (key='s') OR (key=' ') OR (Ord(key)=72) OR
- (Ord(key)=75) OR (Ord(key)=77) OR (Ord(key)=80);
- PutPixel(nx,ny,pix);
- IF (key='8') AND (ny>5) THEN ny:=ny-5; {Bitte die einzelnen}
- IF (key='2') AND (ny<345) THEN ny:=ny+5; {Maximalwerte an Ihre}
- IF (key='4') AND (nx>5) THEN nx:=nx-5; {Graphikkarte an-}
- IF (key='6') AND (nx<635) THEN nx:=nx+5; {gleichen}
- IF (key='5') THEN nx:=640;
- IF (Ord(key)=72) AND (ny>0) THEN ny:=ny-1; { s. o. }
- IF (Ord(key)=75) AND (nx>0) THEN nx:=nx-1;
- IF (Ord(key)=77) AND (nx<640) THEN nx:=nx+1;
- IF (Ord(key)=80) AND (ny<350) THEN ny:=ny+1;
- IF (key=' ') AND (d2y>0) AND (dy=0) THEN BEGIN;
- IF (d2y-ny+1)<0 THEN dy:=ny-d2y-1
- ELSE dy:=d2y-ny+1;
- SetColor(Yellow);
- Line(nx,d2y,nx,ny);
- Line(d2x,ny,d2x,d2y);
- Line(d2x,ny,nx,ny);
- END;
- IF (key=' ') AND (d2x>0) AND (DX=0) THEN BEGIN;
- IF (d2x-nx+1)<0 THEN DX:=nx-d2x-1
- ELSE DX:=d2x-nx+1;
- SetColor(Yellow);
- Line(d2x,ny,nx,ny);
- d2y:=ny+1
- END;
- IF (key=' ') AND (d2x=0) THEN BEGIN;
- d2x:=nx+1;
- pix:=GetPixel(nx,ny);
- END;
-
- UNTIL key='s';
- x1:=d2x+1;
- x2:=d2x+DX;
- y1:=d2y+1;
- y2:=d2y+dy;
- Size:=ImageSize(x1,y1,x2,y2);
- GetMem(p,Size);
- GetImage(x1,y1,x2,y2,p^);
- Assign(g,n2);
- Rewrite(g,1);
- BlockWrite(g,p^,Size);
- Close(g);
- ClearDevice;
- PutImage(20,20,p^,0);
- ReadLn;
- CloseGraph; RestoreCrtMode;
- ClrScr;
- WriteLn; WriteLn;
- WriteLn('x-Groesse:',x2-x1);
- WriteLn('y-Groesse:',y2-y1);
- WriteLn('Groesse :',Size);
- ReadLn;
- END.
-