- 注册时间
- 2004-8-31
- 最后登录
- 1970-1-1
|
发表于 2005-1-9 23:46:00
|
显示全部楼层
不想用poke?
你的意思是说整个程序中没poke?
如果图片显示不一点一点的poke,那就是用批量法了,照样要poke啊,莫不如要用汇编?
160x80的图片得分是PC上的还是WQX系统工具画出来的,bmp文件有3个地址会影响到2位图片是正常还是反色
WQX的是正常的,PC的是反色的
如果是WQX的可以从文件偏移量62开始读,并且读了文件的第一个20字节要想显存倒数20字节中poke,应该WQX里的图片要是放到显存中是上下倒过来的
bmp转换成代码的工具倒是有,可能在tgclc里,不过楼主要读bmp文件做什么?
如果没必要的话把图片按到正常模式(符合显存的模式)写到文件里用就好了,何必转换成bmp?
装换方法基本可以这样(最简单的方法却又是最慢的方法~)
10 INPUT "文件名:";F$
15 INPUT "导出文件名:";F2$
//PS:这里你可以使用GVBASIC+,他没有.dat的限制,或者根据机型将文件扩展名去掉
//nc 2k系列的扩展名地址是:35149--35152,默认是".DAT"
20 OPEN F$ FOR RANDOM AS #1 LEN=1
30 FIELD #1,1 AS IO$
40 IF LOF(1)<>1662 THEN PRINT "非WQX专用格式":END
50 GRAPH
60 FOR Y=79 TO 0 STEP -1
70 FOR X=0 TO 19 STEP +1
80 GET #1,62+Y*20+X
90 POKE 6592+(79-Y)*20+X,ASC(IO$)
100 NEXT:NEXT
110 CLOSE #1:OPEN F2$ FOR RANDOM AS #1 LEN=80
120 FIELD #1,80 AS IO$
130 FOR I=0 TO 19:IO$=""
140 FOR P=0 TO 79
150 IO$=IO$+PEEK(6592+I*80+P)
160 NEXT
170 PUT #1,1+I
180 NEXT
190 CLOSE #1:END
这样bmp里的图片就以显存中的形式保存到文件里了
|
|