设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4203|回复: 12
打印 上一主题 下一主题

[已经过期] 求将PNG转换成Bitmap的方法,除Bitmap.new方法以外

[复制链接]

Lv2.观梦者

梦石
0
星屑
727
在线时间
376 小时
注册时间
2009-3-9
帖子
398
跳转到指定楼层
1
发表于 2012-12-23 11:45:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 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)
新手学习中.....努力吧!!

Lv1.梦旅人

梦石
0
星屑
52
在线时间
586 小时
注册时间
2012-5-31
帖子
768
2
发表于 2012-12-23 11:48:32 | 只看该作者
哇,好深奥的东东呀
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

3
发表于 2012-12-23 12:23:44 手机端发表。 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
727
在线时间
376 小时
注册时间
2009-3-9
帖子
398
4
 楼主| 发表于 2012-12-23 13:42:26 | 只看该作者
本帖最后由 ky52879 于 2012-12-23 17:34 编辑
晴兰 发表于 2012-12-23 12:23
Kernel32!RtlMoveMemory(dest,src,len)


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

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


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

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






新手学习中.....努力吧!!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
727
在线时间
376 小时
注册时间
2009-3-9
帖子
398
5
 楼主| 发表于 2012-12-23 17:32:23 | 只看该作者
3小时过了,顶一下,然后吃饭去。。。

评分

参与人数 1星屑 -5 收起 理由
hcm -5 才三小时就顶啊

查看全部评分

新手学习中.....努力吧!!
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

6
发表于 2012-12-23 19:38:54 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
727
在线时间
376 小时
注册时间
2009-3-9
帖子
398
7
 楼主| 发表于 2012-12-24 07:47:37 | 只看该作者
晴兰 发表于 2012-12-23 19:38
可能你需要png格式解码为像素。。libpng能用,但可能不适合win32api直接使用。。。 ...

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

估计就是png格式的像素问题。。但是jpg?为啥也不行?
新手学习中.....努力吧!!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
270 小时
注册时间
2010-2-4
帖子
1305
8
发表于 2012-12-24 10:49:34 | 只看该作者
- -b lz是想加密图片吧,记得有个bitmap_marshal的脚本(某个截图存档里有反正),用那个脚本把bitmap对象dump到file里(把原来的压缩换成你自己的加解密算法),再读取就行了...一定要png的话,因为png有压缩,所以如lss所述需要转码成像素,32位bmp的话倒是可以省去这一步...
好歹当年也当过大魔王过,orz
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
727
在线时间
376 小时
注册时间
2009-3-9
帖子
398
9
 楼主| 发表于 2012-12-24 13:42:40 | 只看该作者
zhangbanxian 发表于 2012-12-24 10:49
- -b lz是想加密图片吧,记得有个bitmap_marshal的脚本(某个截图存档里有反正),用那个脚本把bitmap对象d ...

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

既然PNG自身有压缩,那jpg呢?为啥也不行?BMP我没试过,这就来试试

点评

- -b这是常识吧,png是无损压缩,jpg是有损压缩,bmp是原样输出,不过注意一般主流bmp是24位的,要用图像处理软件转成带alpha通道的...  发表于 2012-12-24 13:56
新手学习中.....努力吧!!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
727
在线时间
376 小时
注册时间
2009-3-9
帖子
398
10
 楼主| 发表于 2012-12-25 19:01:07 | 只看该作者
没办法,32位的BMP我试过了,只能显示一部分,而且是单色的,而且游戏中用到的图片都是png,不可能用BMP的,所以继续求助。。
PS:哪位大大用C、VB、VC写个代码出来也行,我会专门研究,谢谢了

点评

是局限性,卡死是小事,文件头?你是指去掉BMP文件头,但是PNG是有透明色的。。。  发表于 2012-12-28 12:06
- -b你该不会文件头没去掉吧...话说30m怎么卡死的,我以前做过类似工程貌似没事的说,总不至于单张图30m吧,应该是写法有问题...  发表于 2012-12-25 19:33
新手学习中.....努力吧!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-8 02:15

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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