位置: 编程技术 - 正文

cocos2dx中使用JPG图和只带Alpha的PNG图合成渲染(cocos2d怎么用)

编辑:rootadmin
手游控制安装包的大小是非常重要的,这里介绍一种方法。将带Alpha通道的PNG图片分拆成RGB和Alpha分别保存,其中保存RGB的这张图把它转换成JPG&#;式的文件,保存Alpha图片的就用PNG&#;式的。原理是JPG&#;式的压缩率比较的高可以减小图片的大小,但是它没有Alpha,而Alpha数据单独拎出来一般比较小,所以直接用PNG&#;式来保存。问题是怎样分拆PNG图片,又怎样在程序中怎样将两张图片的数据合并起来以达到和直接用一张带Alpha的PNG图渲染出来是一样的效果。这里提供我自己的方法,给大家参考下,有错误的地方希望大家指出来,谢谢!

推荐整理分享cocos2dx中使用JPG图和只带Alpha的PNG图合成渲染(cocos2d怎么用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos导入图片,cocos2dx 图集,cocos2dx文档,cocos2dx 图集,cocos2djs,cocos2djs,cocos2djs,cocos2djs,内容如对您有帮助,希望把文章链接给更多的朋友!

  1. 将PNG图片分拆,也就是将一张PNG图片生成出一张带RGB的JPG&#;一张带Alpha的PNG,我使用的工具是imagemagick。这里以bg.png为例:

    首先ImageMagick工具提取出Alpha通道,(命令: convert bg.png -channel A -alpha extract bgAlpha.png)

    然后在将bg.png转成JPG&#;式 输出为bg.jpg。jpg&#;式已经不包含Alpha通道,而且jpg的压缩率比较高(这是采用这种方法可以减小图片大小的根本所在)。(convert bg.png bg.jpg)

  这样就得到了bg.jpg 和bgAlpha.png,这两张图片就是我们需要的资源。这样转换之后bg.jpg&#;bgAlpha.png的大小大概比bg.png的 小2~3倍

  2. 在程序中合成

cocos2dx中使用JPG图和只带Alpha的PNG图合成渲染(cocos2d怎么用)

   由于在win,Android平台采用的JPG和PNG解析库和IOS上的不同,所以在程序中要分别处理,这里介绍下在IOS上的方法(win和Android平台解析参照CCImage的_initWithJpgData和_initWithPngData 方法,合并和IOS的平台类&#;,不同地方文中会指出), 这个方法添加在CCImage.mm 文件中即可使用(cocos2dx版本是2.2.2)。

   

这个方法执行之后bg.jpg和bgAlpha.png合并完成,当前的CCImage对象生成的纹理就和直接用bg.png初始化后生成的纹理效果是一样的了。

  另外附上一个将png图片分拆成Jpg和Alpha的shell脚本(shell不太熟,将就着用^_^),使用这个脚本的前提是你已经安装了imagemagick,这个脚本运行之后会遍历当前目录下的所有png文件,然后分拆这些文件,并且会删除原png文件。(如果不想删除原png文件,把`rm $src`去掉即可)

 

cocos2dx-js 集成google play service和admob--------错误处理 官方解决方案在这里去google但是有很多细节上面没有提起。如何导入googleservicelib首先将google-play-services_lib拷贝到自己的android工程目录下。千万不要第一

cocos2dx 按钮重复渐变效果的实现 想实现一个按钮,在未选中前进行重复的动画效果,试了下直接发代码吧:boolMenuItemSpritTest::init(){////////////////////////////////1.superinitfirstif(!Layer::init()){retu

cocos2d-x改底层之获取UIListView的实际内容大小 实际项目中UI界面中经常会用到UIListView,大多会在CocoStudio中直接添加这个控件。但是在使用中发现了一些坑和功能缺乏,然后就看了一下底层的逻辑,

标签: cocos2d怎么用

本文链接地址:https://www.jiuchutong.com/biancheng/368809.html 转载请保留说明!

上一篇:cocos2dx 多分辨率适配(cocos2dx适配)

下一篇:cocos2dx-js 集成google play service和admob--------错误处理(cocos2dx 3.17)

  • 金税盘服务费全额抵扣
  • 小规模企业需要申报吗
  • 纳税申报的基本内容有哪些
  • 工业厂房房产税税率
  • 企业所得税怎么做账
  • 支付给个人的劳务费需要发票吗
  • 城市维护建设税免税
  • 卖二手车
  • 租赁房屋缴纳什么税
  • 农业合作社预付款怎么算
  • 进项较大航天信息怎么填
  • 投资公司的收入就是投资收益吗
  • 不影响利润的跨期发票如何处理?
  • 食堂伙食费怎么入账
  • 海关补料
  • 贸易公司所得税率多少
  • 公司注销后是不是就不再接受诉讼
  • 停车费可以抵扣吗合法吗
  • 支付装修押金的会计科目
  • 如何在Windows 11上卸载更新
  • win10安全中心通知关闭
  • linux压缩.gz
  • 深入分析php引用文献
  • iis搭建php环境
  • php-ml
  • 制造费用结转到主营业务成本
  • linux入门学习
  • 承兑到期解付为什么不到账
  • 为什么不能零申报
  • 相关企业之间的竞争
  • 购进的货物
  • vue中使用md5加密
  • 社保挂靠公司收费标准是怎样的
  • 黄石国家公园的英文翻译
  • 平常心下一句该怎么说
  • un删除
  • 预付款项属于什么
  • 羊羊 过好
  • 银行同业存放业务管理办法
  • 税法折旧和会计折扣会计分录
  • 网页开票流程图解
  • 企业之间的借款属于民间借贷吗
  • 企业改制资产整合过程中涉及的土地增值税
  • 收款收据可以盖业务章吗
  • vue style import
  • 织梦前台的菜单怎么换
  • dedecms安装步骤
  • 一般纳税人混凝土税率
  • 定期定额个税申报应税项和计税依据为什么不相等
  • 上年多做了收入的事情
  • sql server必知必会
  • sql3表连接查询
  • 应收账款与应付账款冲账
  • 生产成本明细科目有哪些内容
  • 为外单位人员报备流程
  • 教育培训机构的老师可以评职称吗
  • 公司开业前期费用谁出
  • 查缴个人海外避税所得税
  • 销售退货的会计账怎么处理
  • 对公付货款没有收到发票如何处理
  • 营业外支出为负数原因
  • 被遗忘的事件
  • mysql增删改查实例
  • xp 跳过 chkdsk
  • ubuntu做lvm
  • win8.1改语言
  • slee401.exe - slee401是什么进程 有什么用
  • win7系统电脑硬盘图标变了,控制面板也打不开
  • linux如何用
  • mac安装nodejs的权限问题
  • opengl教程48讲
  • cocos2d教程
  • nodejs爬取数据
  • linux sed awk区别
  • android资源文件
  • unity ui批处理
  • js基础教程
  • jquery动态添加div
  • python压缩文件为gz
  • 地方税务局受谁领导
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设