HTML超大图片加载显示解决方案--图片切割转换成瓦片地图(BaiduMapTileCutter)

前言

项目中遇到加载网页加载显示大图片的需求(>100MB),参考百度地图等地图加载思路,将超大图片切割成瓦片地图,分级别展示,这样动态加载大图片时,只异步加载图片的部分区域,实现超大图片的高效加载显示。

1.瓦片切分工具-BaiduMapTileCutter

在github上发现一款开源瓦片切割工具,BaiduMapTileCutter,能够将图片切分成3-20级的瓦片,同时会生成一个index.html文件,用浏览器打开就能看到切分成瓦片地图的图片的展示效果,不过index.html需要联网加载一些js文件才能正常显示。

但是在实际使用时发现该工具处理超过100MB的图片时,会出现崩溃,报内存不足,最终错误定位在new Bitmap(imgPath)函数,说明问题出在加载大图片这块。猜测可能时该程序使用32位编译,文件过大会导致内存不足。

2.重新按64位编译BaiduMapTileCutter

首先感谢github。

BaiduMapTileCutter使用C#语言编写,可以用VS2013直接打开该工程,更改工程按X64编译,如果F5调试并编译可能会报 ***工作站**错误,是由于workstation服务未开jiwei5启,不是什么大问题,百度该错误解决即可,不慌。

可能由于.Net版本的问题,VS2013中我的C#不支持 get => y;;这种语法,改成get {return y;}即可编译通过。

如果是编译运行成功后,会在bin下生成X64文件夹,里面的.exe程序即是我们想要的64位版本的BaiduMapTileCutter。

测试运行64的BaiduMapTileCutter,加载处理200MB的图片毫无压力。

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值