Project1

标题: RM可以实现用文件代码(文本)加载图片吗? [打印本页]

作者: yyq8092    时间: 2012-9-1 22:12
标题: RM可以实现用文件代码(文本)加载图片吗?
就是接用文本加载图片或其他资源。在其他一些编程软件中都可以直接用文件文本代码加载图片,这样对资源加密和读取都很方便,不知道RM可以实现吗?dsu_plus_rewardpost_czw
作者: 失落的乐章    时间: 2012-9-2 09:25
不知道LZ是什么意思,是从文本文件中读取代码再执行吗?
作者: 小路比仔    时间: 2012-9-2 10:58
实践就是硬道理,不过……假如我木有理解错的话,理论上大概可以
作者: satgo1546    时间: 2012-9-2 12:29
LZ意思大概是这样……
比如脚本需要一个这个图片:(红色填满的)

(256px×38px)
然后,图片不存入文件。
这个图片在脚本需要的时候,自动生成,比如:
  1. def get_red_pic
  2.   @bit = Bitmap.new(256, 38)
  3.   @bit.fill_rect(@bit.rect,Color.new(255, 0, 0))
  4.   return @bit
  5. end
复制代码
然后需要的时候调用get_red_pic就行了。不知LZ是这样的意思吗?
如果是的话,应该可行,但是如果图片比较乱七八糟,比如这个:

就没办法了……

* 图片全部采用画图制作。

作者: 失落的乐章    时间: 2012-9-2 21:14
用下面这个脚本可以依次读取某文件的每一行,并作为脚本执行
IO.foreach("filename") {|x|eval(x)}
#请自己把那两条竖线换成半角符号,手机打不出来
作者: yyq8092    时间: 2012-9-3 17:27
失落的乐章 发表于 2012-9-2 21:14
用下面这个脚本可以依次读取某文件的每一行,并作为脚本执行
IO.foreach("filename") {|x|eval(x)}
#请自 ...

这个脚本你在哪里看到的?用它能加载图片吗?
作者: 失落的乐章    时间: 2012-9-3 18:11
yyq8092 发表于 2012-9-3 17:27
这个脚本你在哪里看到的?用它能加载图片吗?

能执行任意的代码,只要把代码写入一个文件,然后filename改为你的文件名,这样就能依次读取每行,并作为代码执行。
作者: satgo1546    时间: 2012-9-3 18:29
satgo1546 发表于 2012-9-2 12:29
LZ意思大概是这样……
比如脚本需要一个这个图片:(红色填满的)

@yyq8092 @yyq8092 @yyq8092 @yyq8092 @yyq8092 @yyq8092 @yyq8092 @yyq8092
↑ 防止 @ 无效

显示图片的话还是存成PNG比较方便,RPG::Cache调用就行了。
LZ到底要干什么把图片存入脚本捏……

提供另外一种执行脚本的方法:
  1. f = File.open("文件名","r")
  2. scr = f.read
  3. eval(scr)
复制代码
这样的好处是,写if的时候#5楼的方法有问题,用这样就能直接一次全部读入然后eval。
作者: yyq8092    时间: 2012-9-3 19:52
satgo1546 发表于 2012-9-3 18:29
@yyq8092 @yyq8092 @yyq8092 @yyq8092 @yyq8092 @yyq8092 @yyq8092 @yyq8092
↑ 防止 @ 无效

显示图 ...

好吧,我再解释一次,就是说我没有某个图片文件但是我知道他文件的代码,比如说他的代码是“×××××××”
这个就是你把图片用“记事本”打开里面看到的代码,而在某些编程软件可以直接使用这个代码来加载图片和音乐什么的,而RM只能按照文件名称来读图
作者: satgo1546    时间: 2012-9-3 20:12
yyq8092 发表于 2012-9-3 19:52
好吧,我再解释一次,就是说我没有某个图片文件但是我知道他文件的代码,比如说他的代码是“×××××× ...

狂汗,原来就这个意思啊。
注意,图片文件里面会有0x08之类的字符(退格键!),直接粘贴不行。
所以,还是用文件吧(囧)
非要用这种代码的话,这里看:
  1. cod = "代码内容×××……哈哈"
  2. File.open("a.dat","w") { f.write(cod) }
复制代码
结果,就是,把代码内容写入了a.dat,要用的时候
  1. Bitmap.new("a.dat")
复制代码
比如这样就行了
作者: yyq8092    时间: 2012-9-3 20:41
satgo1546 发表于 2012-9-3 20:12
狂汗,原来就这个意思啊。
注意,图片文件里面会有0x08之类的字符(退格键!),直接粘贴不行。
所以,还 ...

还是等于写出文件再读取.....我说了直接加载或者内存读取
作者: 灼眼的夏娜    时间: 2012-9-6 16:54
可以实现 不过没现成的脚本,大概思路:

用gdi+或者其他库(从文件加载 然后 填充到 Bitmap#address上(:o.o
作者: yyq8092    时间: 2013-7-12 23:15
灼眼的夏娜 发表于 2012-9-6 16:54
可以实现 不过没现成的脚本,大概思路:

用gdi+或者其他库(从文件加载 然后 填充到 Bitmap#address上(: ...

求解决方法啊




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1