Project1

标题: 求将PNG转换成Bitmap的方法,除Bitmap.new方法以外 [打印本页]

作者: ky52879    时间: 2012-12-23 11:45
标题: 求将PNG转换成Bitmap的方法,除Bitmap.new方法以外
本帖最后由 ky52879 于 2012-12-23 17:36 编辑

各位6R的大大们,RM里面的Bitmap.new方法是可以将png文件读取成位图,然后显示出来,

但是如果现在有一个png文件的字节集放在内存中的话,应当怎样让RM读取这个字节集来

转换陈Bitmap呢?

小弟这里有个思路,是这样的:

1.先写一个bitmap = Bitmap.new(60,60)

2.找到该bitmap的内存地址:address = bitmap.address #论坛里有方法

3.将该png文件在内存中的数据之间copy到该地址中即可

以上3点,第三点说起来很简单,但是实现起来不知道应当用哪个API来弄,小弟现在就困在这一步了。。

求各位大大能帮忙看下,感激



左边是原图,右边是读取内存中的字节集后,RM显示的图像。。。


以下附上范例工程,希望懂的“易语言”的大大能帮帮忙,谢谢了

读取内存图片.rar (715.98 KB, 下载次数: 41)

作者: wwwcctvty    时间: 2012-12-23 11:48
哇,好深奥的东东呀
作者: 晴兰    时间: 2012-12-23 12:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: ky52879    时间: 2012-12-23 13:42
本帖最后由 ky52879 于 2012-12-23 17:34 编辑
晴兰 发表于 2012-12-23 12:23
Kernel32!RtlMoveMemory(dest,src,len)


写到内存?我用了,但是如果把字节集直接写到该内存地址的话,然后再RM中读取该内存地址会出现以下现象,看下截图:

左边是原图,右边是读取内存中的字节集后,RM显示的图像。。。


以下附上范例工程,希望懂的“易语言”的大大能帮帮忙,谢谢了

读取内存图片.rar (810.91 KB, 下载次数: 51)







作者: ky52879    时间: 2012-12-23 17:32
3小时过了,顶一下,然后吃饭去。。。
作者: 晴兰    时间: 2012-12-23 19:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: ky52879    时间: 2012-12-24 07:47
晴兰 发表于 2012-12-23 19:38
可能你需要png格式解码为像素。。libpng能用,但可能不适合win32api直接使用。。。 ...

png格式解码为像素?嗯。。有可能,libpng应该是个dll吧,既然是dll,那应该可以调用啊,总之我先试试看,

估计就是png格式的像素问题。。但是jpg?为啥也不行?
作者: zhangbanxian    时间: 2012-12-24 10:49
- -b lz是想加密图片吧,记得有个bitmap_marshal的脚本(某个截图存档里有反正),用那个脚本把bitmap对象dump到file里(把原来的压缩换成你自己的加解密算法),再读取就行了...一定要png的话,因为png有压缩,所以如lss所述需要转码成像素,32位bmp的话倒是可以省去这一步...
作者: ky52879    时间: 2012-12-24 13:42
zhangbanxian 发表于 2012-12-24 10:49
- -b lz是想加密图片吧,记得有个bitmap_marshal的脚本(某个截图存档里有反正),用那个脚本把bitmap对象d ...

你说对了,这个加密方法我还真用过,不过超过30MB的话,XP会卡死,而且局限性有点大。

既然PNG自身有压缩,那jpg呢?为啥也不行?BMP我没试过,这就来试试
作者: ky52879    时间: 2012-12-25 19:01
没办法,32位的BMP我试过了,只能显示一部分,而且是单色的,而且游戏中用到的图片都是png,不可能用BMP的,所以继续求助。。
PS:哪位大大用C、VB、VC写个代码出来也行,我会专门研究,谢谢了
作者: 晴兰    时间: 2012-12-25 21:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: ky52879    时间: 2012-12-28 12:02
晴兰 发表于 2012-12-25 21:20
用chunkypng吧。。那个是纯ruby的图像库,没有意外的话,移植rm无压力

chunkypng?百度了一下,没找到相关信息。。晕了,能否说详细点,谢谢啦
作者: ky52879    时间: 2013-1-3 13:28
自顶一个。。。




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