[发明专利]基于WebGL的大容量图像缓存方法有效
| 申请号: | 201611125042.3 | 申请日: | 2016-12-08 |
| 公开(公告)号: | CN106709864B | 公开(公告)日: | 2019-03-12 |
| 发明(设计)人: | 彭志勇 | 申请(专利权)人: | 彭志勇 |
| 主分类号: | G06T1/60 | 分类号: | G06T1/60;G06F16/957 |
| 代理公司: | 北京远大卓悦知识产权代理事务所(普通合伙) 11369 | 代理人: | 史霞 |
| 地址: | 100027 北京市东*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 缓存 图像缓存 浏览器 大容量 图像 图像分辨率 浏览器支持 操作环境 对象展示 缓存图像 最大图像 兼容性 兼容 渲染 转换 | ||
1.一种基于WebGL的大容量图像缓存方法,其特征在于,包括如下步骤:
通过canvas对象将需要缓存的大量image对象转换为WebGL的texture对象,并缓存至WebGL context中;
当要获取所述大量image对象的其中一个对象时,利用WebGL的shader程序将该其中一对象对应的texture对象通过canvas对象展示出来;
该方法适用于支持WebGL标准的浏览器的图像缓存;
所述通过canvas对象将需要缓存的大量image对象转换为WebGL的texture对象,并缓存至WebGL context中的具体方法包括如下步骤:
1.1)构建一个canvas对象,并从其取得WebGL context;
1.2)从WebGL context中取出当前设备支持的texture个数的最大值和texture大小的最大值;
1.3)根据texture大小的最大值生成canvas对象大小的最大值,并将需要缓存的图像使用canvas的drawimage方法按顺序绘制到指定的区域,当该canvas绘制满后,将该canvas转换成WebGL的texture对象,并缓存至WebGL context中;
1.4)依次循环重复1.2)和1.3),直至所有image对象缓存完或者创建的texture对象数目达到了所述texture个数的最大值。
2.如权利要求1所述的基于WebGL的大容量图像缓存方法,其特征在于,在步骤1.4)之后,还包括如下步骤:
1.5)删除掉用于拼接大图片的canvas对象。
3.如权利要求1所述的基于WebGL的大容量图像缓存方法,其特征在于,所述利用WebGL的shader程序将该对象对应的texture对象转换image对象,并通过canvas对象展示出来的具体方法包括如下步骤:
2.1)计算得到该其中一个对象对应的texture对象和该texture对象所在的区域;
2.2)将WebGL context所在的canvas大小的值设置为该其中一个对象的image对象大小的值;
2.3)使用WebGL的shader程序将该texture对象所在的区域的对象绘制为image对象,并通过步骤2.2)中的canvas展示出来。
4.如权利要求3所述的基于WebGL的大容量图像缓存方法,其特征在于,在步骤2.3)之后,还包括如下步骤:
2.4)创建一个新的canvas对象,使用drawimage办法,将步骤2.3)中展示的image对象复制到该新的canvas对象上并存储至设备。
5.如权利要求1所述的基于WebGL的大容量图像缓存方法,其特征在于,所述支持WebGL标准的浏览器包括Google Chrome 9+、Mozilla Firefox 4+、Safari 5.1+、Opera 12alpha及以上版本和IE11+浏览器版本。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于彭志勇,未经彭志勇许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611125042.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:与工具目录数据库协作的数值控制系统
- 下一篇:GOA电路





