'this program is a magical RGB color quantifer that will read RGB values for 'each pixel in a raw RGB image and then write only organized series of RGB 'values instead, into a new generated raw RGB image (that will be the copycat 'of the first one, except that it will have the quantified colors instead). 'copyright Dioxaz (c) 2003. email : sonic-discovery@fr.st. Website : http://www.sonic-discovery.fr.st CLS DIM v AS STRING * 1 DIM v1 AS STRING * 1 PRINT "This program is a magical RGB color quantifer that will read RGB values for" PRINT "each pixel in a raw RGB image and then write only organized series of RGB" PRINT "values instead, into a new generated raw RGB image (that will be the copycat" PRINT "of the first one, except that it will have the quantified colors instead)." PRINT PRINT "Copyright Dioxaz (c) 2003" PRINT "Email : sonic-discovery@fr.st" PRINT "Website : http://www.sonic-discovery.fr.st" PRINT PRINT PRINT PRINT "Press any key to continue" DO LOOP WHILE INKEY$ = "" INPUT "enter path + filename of input raw RGB image :"; f1$ INPUT "enter path + filename of output raw RGB image :"; f2$ OPEN f1$ FOR BINARY AS #1 OPEN f2$ FOR BINARY AS #2 p = 1 'variable for offset in output file SEEK #1, 1 DO GET #1, p, v 'the folowing part of the program will quantify colors to a 9-bit RGB 'color system, aka, the image will look as it will do on a Sega Genesis. 'if you want to quantify to another color system (15-bit for exemple), 'you'll have to modify the quantification routine by adding more 'if' 'conditions, that will scan in a smaller RGB value range. IF (v >= CHR$(0) AND v <= CHR$(4)) THEN v1 = CHR$(0) PUT #2, p, v1 END IF IF (v >= CHR$(4) AND v <= CHR$(12)) THEN v1 = CHR$(8) PUT #2, p, v1 END IF IF (v >= CHR$(12) AND v <= CHR$(20)) THEN v1 = CHR$(16) PUT #2, p, v1 END IF IF (v >= CHR$(20) AND v <= CHR$(28)) THEN v1 = CHR$(24) PUT #2, p, v1 END IF IF (v >= CHR$(28) AND v <= CHR$(36)) THEN v1 = CHR$(32) PUT #2, p, v1 END IF IF (v >= CHR$(36) AND v <= CHR$(44)) THEN v1 = CHR$(40) PUT #2, p, v1 END IF IF (v >= CHR$(44) AND v <= CHR$(52)) THEN v1 = CHR$(48) PUT #2, p, v1 END IF IF (v >= CHR$(52) AND v <= CHR$(60)) THEN v1 = CHR$(56) PUT #2, p, v1 END IF IF (v >= CHR$(60) AND v <= CHR$(68)) THEN v1 = CHR$(64) PUT #2, p, v1 END IF IF (v >= CHR$(68) AND v <= CHR$(76)) THEN v1 = CHR$(72) PUT #2, p, v1 END IF IF (v >= CHR$(76) AND v <= CHR$(84)) THEN v1 = CHR$(80) PUT #2, p, v1 END IF IF (v >= CHR$(84) AND v <= CHR$(92)) THEN v1 = CHR$(88) PUT #2, p, v1 END IF IF (v >= CHR$(92) AND v <= CHR$(100)) THEN v1 = CHR$(96) PUT #2, p, v1 END IF IF (v >= CHR$(100) AND v <= CHR$(108)) THEN v1 = CHR$(104) PUT #2, p, v1 END IF IF (v >= CHR$(108) AND v <= CHR$(116)) THEN v1 = CHR$(112) PUT #2, p, v1 END IF IF (v >= CHR$(116) AND v <= CHR$(124)) THEN v1 = CHR$(120) PUT #2, p, v1 END IF IF (v >= CHR$(124) AND v <= CHR$(132)) THEN v1 = CHR$(128) PUT #2, p, v1 END IF IF (v >= CHR$(132) AND v <= CHR$(140)) THEN v1 = CHR$(136) PUT #2, p, v1 END IF IF (v >= CHR$(140) AND v <= CHR$(148)) THEN v1 = CHR$(144) PUT #2, p, v1 END IF IF (v >= CHR$(148) AND v <= CHR$(156)) THEN v1 = CHR$(152) PUT #2, p, v1 END IF IF (v >= CHR$(156) AND v <= CHR$(164)) THEN v1 = CHR$(160) PUT #2, p, v1 END IF IF (v >= CHR$(164) AND v <= CHR$(172)) THEN v1 = CHR$(168) PUT #2, p, v1 END IF IF (v >= CHR$(172) AND v <= CHR$(180)) THEN v1 = CHR$(176) PUT #2, p, v1 END IF IF (v >= CHR$(180) AND v <= CHR$(188)) THEN v1 = CHR$(184) PUT #2, p, v1 END IF IF (v >= CHR$(188) AND v <= CHR$(196)) THEN v1 = CHR$(192) PUT #2, p, v1 END IF IF (v >= CHR$(196) AND v <= CHR$(204)) THEN v1 = CHR$(200) PUT #2, p, v1 END IF IF (v >= CHR$(204) AND v <= CHR$(212)) THEN v1 = CHR$(208) PUT #2, p, v1 END IF IF (v >= CHR$(212) AND v <= CHR$(220)) THEN v1 = CHR$(216) PUT #2, p, v1 END IF IF (v >= CHR$(220) AND v <= CHR$(228)) THEN v1 = CHR$(224) PUT #2, p, v1 END IF IF (v >= CHR$(228) AND v <= CHR$(236)) THEN v1 = CHR$(232) PUT #2, p, v1 END IF IF (v >= CHR$(236) AND v <= CHR$(244)) THEN v1 = CHR$(240) PUT #2, p, v1 END IF IF (v >= CHR$(244) AND v <= CHR$(255)) THEN v1 = CHR$(248) PUT #2, p, v1 END IF p = p + 1 LOOP UNTIL EOF(1) CLOSE CLOSE