[发明专利]NinePatch图形描绘方法及装置、计算机可读存储介质有效
| 申请号: | 201810563860.4 | 申请日: | 2018-06-04 |
| 公开(公告)号: | CN110554871B | 公开(公告)日: | 2022-12-06 |
| 发明(设计)人: | 卢东林 | 申请(专利权)人: | 上海视九信息科技有限公司 |
| 主分类号: | G06F8/38 | 分类号: | G06F8/38;G06T11/00;G06T11/60 |
| 代理公司: | 上海锻创知识产权代理有限公司 31448 | 代理人: | 陈少凌 |
| 地址: | 201101 上海市闵行*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | ninepatch 图形 描绘 方法 装置 计算机 可读 存储 介质 | ||
一种NinePatch图形描绘方法及装置、计算机可读存储介质,所述方法包括:设定原始图形在横向的第一伸缩区域以及在纵向的第二伸缩区域,在横向上的其他区域为第一固定区域,在纵向上的其他区域为第二固定区域;根据目标图形的横向长度,伸缩第一伸缩区域得到第一目标区域;根据目标图形的纵向长度,伸缩第二伸缩区域得到第二目标区域;根据第一目标区域的长度和第一固定区域的长度,得到目标图形上各个点在原始图形上对应点的横坐标;根据第二目标区域的长度和第二固定区域的长度,得到目标图形上各个点在原始图形上对应点的纵坐标;将原始图形上各个点的颜色映射到目标图形上对应点的坐标上。应用上述方案,可以减少描画时间,降低存储3D Texture的缓存空间。
技术领域
本发明涉及图像处理领域,尤其涉及一种NinePatch图形描绘方法及装置、计算机可读存储介质。
背景技术
安卓九点图(NinePatch)图形是一个可横向和纵向伸缩指定重复区域的图形,目前没有公认的成熟着色器(Shader)描述方法能一次性描画该类图形,所以现有技术中的做法为:先将NinePatch图形通过2D描画应用程序编程接口(Application ProgrammingInterface,API):NinePatchDrawable.draw(canvas),将图形按照目标尺寸画在画布(Canvas)上,然后将此Canvas转化成三维纹理(3D Texture),最后再通过描画普通矩形的Shader,将图形描画在屏幕上。
这样做最大的问题是,当界面上多处用到同一个NinePatch,但目标尺寸各不相同时,例如聊天软件的对话气泡这种用一个NinePatch根据消息长短不断变化尺寸的场合下,就需要制作大量的3D Texture来适配并缓存所有尺寸的气泡图形,耗费大量的描画时间,也消耗了大量的缓存来存储3D Texture。
发明内容
本发明解决的技术问题是描画时间较长且存储3D Texture的缓存空间较大的问题。
为解决上述技术问题,本发明实施例提供一种NinePatch图形描绘方法,包括:设定原始图形在横向的第一伸缩区域以及在纵向的第二伸缩区域,在横向上的其他区域为第一固定区域,在纵向上的其他区域为第二固定区域;根据目标图形的横向长度,伸缩所述第一伸缩区域得到第一目标区域;根据目标图形的纵向长度,伸缩所述第二伸缩区域得到第二目标区域;根据所述第一目标区域的长度和所述第一固定区域的长度,得到所述目标图形上各个点在所述原始图形上对应点的横坐标;根据所述第二目标区域的长度和所述第二固定区域的长度,得到所述目标图形上各个点在所述原始图形上对应点的纵坐标;将所述原始图形上各个点的颜色映射到所述目标图形上对应点的坐标上。
可选的,所述根据所述第一目标区域的长度和所述第一固定区域的长度,得到所述目标图形上各个点在所述原始图形上对应点的横坐标,包括:根据所述第一目标区域的长度占所述目标图形在横向上的长度的百分比,以及所述第一固定区域的长度占所述目标图形在横向上的长度的百分比,得到所述目标图形上各个点在所述原始图形上对应点的横坐标。
可选的,所述根据所述第二目标区域的长度和所述第二固定区域的长度,得到所述目标图形上各个点在所述原始图形上对应点的纵坐标,包括:根据所述第二目标区域的长度占所述目标图形在纵向上的长度的百分比,以及所述第二固定区域的长度占所述目标图形在纵向上的长度的百分比,得到所述目标图形上各个点在所述原始图形上对应点的纵坐标。
可选的,所述第一伸缩区域的个数是1或2。
可选的,所述根据目标图形的横向长度,伸缩所述第一伸缩区域得到第一目标区域,包括:当所述第一伸缩区域的个数为2时,两个第一伸缩区域按照相同比例伸缩。
可选的,所述第二伸缩区域的个数是1或2。
可选的,所述根据目标图形的纵向长度,伸缩所述第二伸缩区域得到第二目标区域,包括:当所述第二伸缩区域的个数为2时,两个第二伸缩区域按照相同比例伸缩。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海视九信息科技有限公司,未经上海视九信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810563860.4/2.html,转载请声明来源钻瓜专利网。





