回复 11楼 月沐庭轩
感谢您的帮助,我已实现将BMP的每一RBG的16进制存到数组中,
你写的这段有些小问题,相互交流。
因24位的RBG 要占3个字节,如BMP宽度*3/4<>0 那WINDOWS存储时要会补足,故如果直接从RBG数据区一直读取到结束BMP会失真。
还有1、按BMP宽度读取时每一行的RGB头和尾6个字节没有用(它是图像的左右边框)。2、按BMP宽度读取时第一行的RGB是没有用的(它是图像的底边框)。
即
IF 宽度*3/4=0 THEN
FSEEK(BMPHANGLE,54&&START + 宽度*3 + 3&&倒数第一行的坐边框占得3个字节)
FREAD()&&真正有效的RGB开始处,以后按(宽度-2)完后 让FSEEK移动6个字节。
else
FSEEK(BMPHANGLE,54&&START + 宽度*3 + 3&&WINDOWS补得3个字节 + 3&&倒数第一行的坐边框占得3个字节)
FREAD()&&真正有效的RGB开始处,以后按(宽度-2)完后 让FSEEK移动9个字节。
ENDIF
如本人有错,请指导。
请高手指导VFP 如何实现截屏和指定区域截屏?