易码技术论坛

 找回密码
 加入易码
搜索
查看: 618208|回复: 18

问BASIC中的图片读取

[复制链接]
发表于 2006-3-4 08:10:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2006-3-25 20:31:00 | 显示全部楼层
没错,先在系统工具里画自己要的图,然后保存成DAT格式的(具体软件自己找咯)。再BAS里编个程序把你要的图的数据写到你要的DAT文件里就行了。运行自己的程序时在从你新做的DAT里读出数据就可以啦。
发表于 2006-3-25 20:49:00 | 显示全部楼层
来贴一个吧。(红色为重点!!蓝色为解释不用输入进代码)

10 DIM A(1600):OPEN "XXX.DAT" FOR RANDOM AS #1 LEN=1          "DIM A(1600)非常重要,系统默认为10,要自己定义一下,否则会出错"                "XXX.DAT为你的源图片数据,不同情况名字不同"

20 FIELD #1,1 AS E$

30 FOR B=1 TO 1600

40 GET #1,B:A(B)=ASC(E$)

50 NEXT:CLOSE #1              "到这里已经把图片数据读取好了,下面就是要储存到你要的DAT文件里去了"

60 OPEN "DAT.DAT" FOR RANDOM AS #1 LEN=1             "DAT.DAT为你的DAT文件用来储存图片数据,不同情况名字不同"

70 FIELD #1,1 AS F$

80 FOR C=1 TO 1600 STEP 1

90 LSET F$=MKI$(A(C)):PUT #1,C       "注意,这里的C为你要储存的数据地址,如果从第一个地址开始就为C,从第100个数据开始就是C+100,但要确保前100位已经有了数据~"

100 NEXT:CLOSE #1

110 LOCATE 1,1RINT "OK!"      "好了,现在已经储存好数据了"
 楼主| 发表于 2006-6-27 23:08:00 | 显示全部楼层
[em01] 强啊,谢了各位!
发表于 2006-7-5 14:00:00 | 显示全部楼层
还有很强的批量发怎么忘了!

POKE 34667,11//改LINE 为  WriteBlock

POKE 146,X  //图片地址

POKE 147,Y

LINE X1,Y1,X1+WIDTH,Y1+HIGHTH




发表于 2006-8-26 17:29:11 | 显示全部楼层
楼上的方法踢C支持么?能讲具体一点吗?
发表于 2006-10-6 16:43:53 | 显示全部楼层
踢C1K
发表于 2006-10-9 17:22:00 | 显示全部楼层
引用第5楼gcwy2006-07-05 14:00发表的“”:
还有很强的批量发怎么忘了!

POKE 34667,11//改LINE 为  WriteBlock

POKE 146,X  //图片地址
.......
这个不是批量法!!
 是汇编的 贴图中断`~
发表于 2006-10-11 09:42:12 | 显示全部楼层
楼上的,我晕一回给你看,批量法本来就是用汇编来修改了变量的读取地址,原本读取的地址是存入的变量的地址,但现在给改了,改成读取图形缓冲区的数据了,这就是用汇编来改变读写地址而达到快速保存图象的批量法的原理!
发表于 2006-10-12 18:12:29 | 显示全部楼层
一万个不同意的你说法!
随便在别的区叫人来看看~评评~~~~~~~~
晕你就快晕~~~
人多了你晕就不好办了`~~~
发表于 2006-10-12 18:21:20 | 显示全部楼层
引用第9楼wqstar0282006-10-11 09:42发表的“”:
楼上的,我晕一回给你看,批量法本来就是用汇编来修改了变量的读取地址,原本读取的地址是存入的变量的地址,但现在给改了,改成读取图形缓冲区的数据了,这就是用汇编来改变读写地址而达到快速保存图象的批量法的原理!
有个疑问:老兄,你了解什么是贴图中断吗?或许你知道批量法怎么用,但是你看见没,5楼写出来的是贴图中断!!!!!!
不是批量法!~~~~~~~批量能这样用吗?

“POKE 34667,11//改LINE 为 WriteBlock ”这个就是改成WB(贴图)中断~~~~~~~~~
发表于 2006-10-12 18:42:22 | 显示全部楼层
批量法,其实是通过修改字符串变量的地址,将其改为显存地址,然后使用LSET,RSET等字符串操作函数,通过处理字符串(其实就是批量处理字节)的方法来操作显存的。
批量法不是通过一个简单的LINE就可以实现,或者wqstar028所谓的不是我们所知的那种批量法。
发表于 2006-10-12 19:41:01 | 显示全部楼层
使用“LINE"来贴图也是可以的,不过不是通常所说的”批量法“。
用LINE贴图的原理是:  wqx有个贴图的中断,其位置参数的地址与画线的中断的几个参数是一样的。 所以可以先把dat数据的地址poke进去,然后把GVBASIC解释器中执行LINE的画线中断改成 贴图的那个中断,然后使用LINE...就达到了贴图的目的。
发表于 2006-10-13 16:12:43 | 显示全部楼层
楼上正解!

不管怎么样,还请大家尊敬我们的薛老师~

ps:伟大的批量法就是薛老师原创的
发表于 2006-10-13 17:55:14 | 显示全部楼层
引用第14楼yoyohenry2006-10-13 16:12发表的“”:
楼上正解!

不管怎么样,还请大家尊敬我们的薛老师~

ps:伟大的批量法就是薛老师原创的
“薛”??
不是 “余”吗?
余海林?
。。。。。。。。。。。。。。。。。。。
冒失了我
发表于 2007-1-23 13:19:18 | 显示全部楼层
薛顺健=余海林?
发表于 2007-1-23 15:50:05 | 显示全部楼层
你们真搞笑,连那两人都分不请
发表于 2007-1-29 11:56:24 | 显示全部楼层
批量法这个东西 我最早接触是在PC1000/CC800的时代 那时候的“拯救小狗波比”中首先用到的 用于快速存取地图数据
这个游戏的作者是 余海林余大哥 而这个批量法的原理是通过对字符串型数据的一些参数的修改来实现对内存的批量存取
在当时6502还没有开始流行 我相信很大一部分星迷印象中的批量法都是我所说的这个

至于wqstar028所说的批量法 和余海林大哥的批量法原理不同 也许只是名字相同(我不了解,wqstar028的批量法出现时我好像已经没有在接触WQX了所以不是很清楚,当然要是有谁说余海林大哥的批量法其实也是wqstar028所创,那便是我孤陋寡闻了)
但是“批量法”这个名字确实是首先被用来命名给余海林大哥的那个操作字符串的方法
 楼主| 发表于 2006-3-3 18:36:30 | 显示全部楼层 |阅读模式
我看到有些程序的画面是通过读取DAT文件实现的,请问哪位高手教我怎样制作和读取显示图片?不胜感激!
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-20 16:29 , Processed in 0.016145 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表