FUNCTION FIXBINBYTE(B AS BYTE) AS INTEGER DIM TMP AS INTEGER TMP = INTEGER(B) IF TMP < 0 THEN FIXBINBYTE = TMP+256 ELSE FIXBINBYTE = TMP END IF END FUNCTION FUNCTION GETBITMAP(FILENAME AS STRING, W AS INTEGER, H AS INTEGER) AS INTEGER(65536,3) PRINT "startreadfunc" REM 16'384 DIM RGB(65536,3) AS INTEGER DIM BMPBYTE AS BYTE DIM ERR AS STRING DIM I, XOFF, YOFF, PIXEL AS INTEGER PIXEL = 1 PRINT "startread" OPEN #1, FILENAME, "r" FOR I=0 TO 52 GET #1, BMPBYTE END FOR TRY FOR YOFF=0 TO H FOR XOFF=0 TO W GET #1, BMPBYTE RGB(PIXEL,1) = FIXBINBYTE(BMPBYTE) GET #1, BMPBYTE RGB(PIXEL,2) = FIXBINBYTE(BMPBYTE) GET #1, BMPBYTE RGB(PIXEL,3) = FIXBINBYTE(BMPBYTE) PIXEL = PIXEL+1 END FOR END FOR CATCH ERR REM PRINT ERR END TRY PRINT "ok" CLOSE #1 PRINT "endreadfunc" END FUNCTION FUNCTION DRAWBMPTP(X AS INTEGER, Y AS INTEGER, W AS INTEGER, H AS INTEGER, IMAGE(65536,3) AS INTEGER, TPR AS INTEGER, TPG AS INTEGER, TPB AS INTEGER) AS INTEGER DIM XOFF, YOFF, PIXEL AS INTEGER DIM R,G,B,ALPHA AS INTEGER DIM ERR AS STRING PIXEL = 1 ALPHA = 0 FOR YOFF=0 TO H PRINT STR$(R) + "," + STR$(G) + "," + STR$(B) + "," + STR$(ALPHA) FOR XOFF=0 TO W TRY R = IMAGE(PIXEL,1) G = IMAGE(PIXEL,2) B = IMAGE(PIXEL,3) IF (R = TPR) AND (G = TPG) AND (B = TPB) THEN ALPHA = 100 ELSE ALPHA = 0 END IF SETCOLOR R, G, B, ALPHA PLOT X+XOFF, Y+YOFF CATCH ERR REM PRINT "ERR" + STR$(PIXEL) END TRY PIXEL = PIXEL + 1 END FOR REPAINT SLEEP 1000 END FOR REM REPAINT DRAWBMPTP=PIXEL END FUNCTION FUNCTION DRAWBMP(X AS INTEGER, Y AS INTEGER, W AS INTEGER, H AS INTEGER, IMAGE(65536,3) AS INTEGER) AS INTEGER DRAWBMP=DRAWBMPTP(X,Y,W,H,IMAGE,-1,-1,-1) END FUNCTION