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

Project1

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

[原创发布] 地图截图工具v1.3(猫儿的RMXP工具包第九弹)更新!

[复制链接]

Lv4.逐梦者

梦石
0
星屑
13559
在线时间
2753 小时
注册时间
2014-10-4
帖子
756

R考场第七期纪念奖

1
发表于 2017-10-9 21:12:43 | 显示全部楼层
bitmap=>png 简版
从来没有最啊...

点评

实验失败 确实32位只有4G寻址空间 能申请出来的更是少的可怜 一次性取确实行不通 暂无想法  发表于 2017-10-10 01:24
bitmap转png最花时间的部分在于BGRA->RGBA,其他拷贝内存都快的很。  发表于 2017-10-9 21:26
你确定这个能做16000X16000的bitmap?500X500的地图其截图就有这么大 我和Zip::Deflate.deflate折腾了半天结论是out of memory,只能用临时文件+自算alerc32才行  发表于 2017-10-9 21:24
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
13559
在线时间
2753 小时
注册时间
2014-10-4
帖子
756

R考场第七期纪念奖

2
发表于 2017-10-10 05:57:52 | 显示全部楼层
本帖最后由 SixRC 于 2017-10-16 20:20 编辑

关于内存的问题,想到解决方案了,比较满意
本地测试15000*15000只需10秒 笔记本 你可以测试
理论上只要bitmap能生成 就能生成png
似乎超过1G rm就会炸掉 16000*16000绝对是上限了
除非不生成一个大的bitmap
流程是开两次exe
第一次生成bitmap对象 并且保存程序句柄 位图数据起始段址 位图宽高 到文件
第二次是判断那个文件是否存在 存在则
读取第一次程序的内存 然后分次取出数据到 gz

下面是代码
code

随便找张图
第一次运行等txt出现
第二次运行就会保存png
txt请自己删除..测试原因没有自动删它
睡觉去了






点评

嗯 我修改好了 开始我直接打开看没问题 没有用rm读取 所以不知道有问题 是我的错 有其余问题请提  发表于 2017-10-11 12:54
我明天会更改测试的  发表于 2017-10-11 00:21
要adler32校验码的话 直接算一下就好 每个xy数组里的循环都会取出一段interval高度的数据并处理好放到temp2里  发表于 2017-10-11 00:14
不清楚gz结构 不过本地测试确实是成功的 关于cwp 你可以查阅用它调用汇编 以上  发表于 2017-10-10 23:48
CallWindowProc第一个参数是指向函数句柄,然后试你这生成的PNG挂掉了,因为你压进去的IDAT数据最后没有加adler32校验码……从gzip文件里取出来的值是裸的  发表于 2017-10-10 22:39

评分

参与人数 1星屑 +20 收起 理由
RyanBern + 20 赞认真的讨论交流

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-9 03:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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