home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* TOGRAY.PAS *)
- (* Wandelt Bi-level Bilder in Graustufen-Bilder um. *)
- (* Belegt Interrupt 8, arbeitet im Modus 640 x 480 x 16 *)
- (* (c) 1990 Dietmar Ring & TOOLBOX *)
- (* ------------------------------------------------------ *)
- {$M 4096,0,48000}
-
- USES Graph, Dos, Crt;
-
- CONST
- Breite = 639; { Bildschirmbreite }
- Hoehe = 479; { Bildschirmhöhe }
-
- VAR
- Driver, Modus : INTEGER;
- Driver_zeiger : POINTER;
- Fehler : INTEGER;
-
- {$L EGAVGA} { Bindet den VGA-Treiber ein }
-
- PROCEDURE EgaVGAdriverProc; EXTERNAL;
-
- PROCEDURE Schreiben; INTERRUPT;
- { Konvertierungs-Prozedur, }
- { wird durch Interrupt 5 aufgerufen }
- VAR
- x, y : INTEGER; { Bildschirmposition }
- xx, yy : INTEGER; { Raster }
- Raster : INTEGER; { Rastergröße }
- Farbe : INTEGER; { Errechnete Farbe }
- Result : INTEGER;
- BEGIN
- Raster := 0;
- WHILE (Raster = 0) DO BEGIN { Abfrage Rastergröße }
- VAL(ReadKey, Raster, Result);
- END;
- IF (Raster = 1) THEN
- Raster := 3; { Default-Raster }
-
- FOR y := 0 TO Hoehe DO BEGIN { Konvertierung }
- FOR x := 0 TO Breite DO BEGIN
- Farbe := 1;
- FOR xx := 1 TO Raster DO BEGIN
- FOR yy := 1 TO Raster DO BEGIN
- IF (GetPixel(x+xx, y+yy)) > 0 THEN
- { Für jedes im Raster gesetztes }
- Inc(Farbe);
- { Pixel wird Farbe um 1 erhöht }
- END;
- END;
- PutPixel(x, y, Farbe);
- IF KeyPressed THEN { Abrage auf Abbruch (ESC) }
- IF (ReadKey = #27) THEN Exit;
- END;
- END;
- END;
-
- BEGIN
- Driver := VGA;
- Modus := VGAHI;
-
- Fehler := RegisterBGIdriver(Addr(EgaVGAdriverProc));
- InitGraph(Driver, Modus, '');
-
- IF (Fehler > -1) THEN BEGIN
- SetIntVec(5, @Schreiben);
- OuttextXY(10, 15, 'ToGray installiert');
- OuttextXY(10, 30, 'Aufruf mit <Prtscr> gefolgt von ' +
- '<2>, <3>, <4> oder <5>');
- OuttextXY(10, 45, '<Prtscr><1> ruft das Programm ' +
- 'mit Defaultwerten auf');
- WriteLn;
- WriteLn;
- WriteLn;
- Keep(0);
- END;
-
- RestoreCrtMode;
- WriteLn;
- WriteLn('Fehler: nicht installert ');
- Halt(1);
-
- END.
- (* ------------------------------------------------------ *)
- (* Ende von TOGRAY.PAS *)