Project1

标题: 如何读取内存数据块生成Bitmap?[10 vip] [打印本页]

作者: kylixs    时间: 2007-4-13 09:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: kylixs    时间: 2007-4-13 09:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: chaochao    时间: 2007-4-13 09:54
用set_pixel来做,速度是很大的问题。所以pass。
作者: 美兽    时间: 2007-4-13 16:58
RM的高速缓存在第一次生成bitmap对象时消耗资源,只要不清除高速缓存,当再次载入同名文件时传递的是引用,应该是非常快的方式吧。
例如
bit1 = RPG::Cache.gameover("001-Gameover01")
bit2 = RPG::Cache.gameover("001-Gameover01")
p bit1,bit2         #传递的是内存地址,两者相同
p bit1.object_id,bit1.object_id  #是同一对象

而bitmap可以通过.clone的方式传值.

换言之,除非能提高bitmap第一次生成的速度,否则高速缓存传递地址的方式已经非常快了,比任何图象数据转换为bitmap对象的方式都要快,因为不涉及新对象的生成.

BitBlt似乎是直接复制内存位图数据,却不知道如何将其转为bitmap快捷的方法,除非一点一点的描…….

不晓得这么说是否恰当.



作者: kylixs    时间: 2007-4-13 20:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: 美兽    时间: 2007-4-13 21:09
我只会将位图显示在窗体场景中,完全脱离bitmap操作……

不晓得Bitmap本身是否直接是从内存读取的,之所以慢或许是形成Bitmap对象的结构,毕竟其有很多方便的性质,直接用API就没这么多便宜可用了。

最多只会set_pixel设置bitmap,哎,爱莫能助。

不清楚你要做什么功能,嫌第一次载入慢,可以做个LOADing……
作者: kylixs    时间: 2007-4-13 21:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: 美兽    时间: 2007-4-13 21:15
以下引用kylixs于2007-4-13 13:12:26的发言:


以下引用美兽于2007-4-13 13:09:19的发言:

我只会将位图显示在窗体场景中,完全脱离bitmap操作……



用Win32API画bitmap出来?
完全脱离不行,因为有层次……
我需要的是读入一个文件中的一块数据(不是整个文件),生成一个RM的Bitmap


API可以只复制部分图象,层次可以利用创建新场景达成,只是这样做很傻,旋转,放缩都没了,连移动都变的费劲……
当没说过好了……

作者: 美兽    时间: 2007-4-13 21:41
忽然想起个东西,夏娜那个打包程序不就是把图象转为数据,根据数据生成bitmap吗?

不知效率是否可以???

……
仔细看了下,似乎是又转回来再生成的bitmap……
作者: kylixs    时间: 2007-4-14 17:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: gpra8764    时间: 2007-4-15 05:17
提示: 作者被禁止或删除 内容自动屏蔽




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