cocos2dx 3.x(TexturePacker进行图片加密)

游戏开发过程中要涉及到大量的图片,使用TexturePacker可以把小图合成大图。这是我们使用最多的功能,但是TexturePacker还带有对图片加密的功能。之前还是对加密不慎了解,所以写下来分享下。

把图片导入到TexturePacker中:

接下来就是加密了

>----- Create new key 是系统随机密钥

>----- Clear/DIsable  启用、关闭图片加密功能

>----- Save as global key 将密钥作为全局的密钥,以后对其他的图片加密直接点击use global key就行

>----- Use global key 使用保存的全局密钥

点击Save

点击Publish。把生成的plist和ccz文件复制到资源文件夹下面就行了。

由于使用的cocos2dx 3.0的版本不需要更新ZipUtils文件。同样TestCpp中也有示例:\cocos2d-x-3.0\tests\cpp-tests\Classes\TexturePackerEncryptionTest

在这里使用的密钥为:

1 76bcbb68 3a89c4f1 a9dfbac2 65a46419 //(加密的 必须是32位十六进制值)

中间的空格我手动添加的,因为在程序中使用需要把32位密钥分成4个十六进制的值。我们可以在cocos2dx的AppDelegate中添加设定密钥,或者在我们使用的位置添加。

本示例在AppDelegate中添加的

用到的头文件:

1 #include "cocos/2d/ZipUtils.h"

 1 bool AppDelegate::applicationDidFinishLaunching() {
 2     // initialize director
 3
 4     ..............
 5
 6     // 2528bd78 112d53ef fa5e5fb2 b7a5b25a (加密的 必须是32位十六进制值)
 7     ZipUtils::setPvrEncryptionKeyPart(0, 0x76bcbb68);
 8     ZipUtils::setPvrEncryptionKeyPart(1, 0x3a89c4f1);
 9     ZipUtils::setPvrEncryptionKeyPart(2, 0xa9dfbac2);
10     ZipUtils::setPvrEncryptionKeyPart(3, 0x65a46419);
11
12     // 或者按照这种方式添加
13     //ZipUtils::setPvrEncryptionKey(0x2528bd78, 0x112d53ef, 0xfa5e5fb2, 0xb7a5b25a);
14
15     auto scene = TexturePackageEnvryption::scene();
16     // run
17     director->runWithScene(scene);
18
19     return true;
20 }  

对密钥设置完成。

在我们程序中具体使用如下:

1  SpriteFrameCache::getInstance()->addSpriteFramesWithFile("TexturePackageEncryption/poker.plist", "TexturePackageEncryption/poker.pvr.ccz");
2
3  auto spriteRole = Sprite::createWithSpriteFrameName("1.png");
4  spriteRole->setPosition(Point(240, 320));
5  this->addChild(spriteRole);  

这样我们就可以正常的使用加密过的图片了。

 

时间: 2024-08-10 01:23:37

cocos2dx 3.x(TexturePacker进行图片加密)的相关文章

php实现图片加密解密,支持加盐

一个简单的图片加解密函数 使用client跑,不要使用浏览器跑 qq845875470 ,技术交流 1 <?php 2 /** 3 * Created by hello. 4 * User: qq 845875470 5 * Date: 2016/4/2 6 * Time: 11:21 7 */ 8 9 $notice = <<<A 10 为了稳定性,必须在客户端跑 11 格式 :php path=D:/xxx/uuu type=en is_copy=1 salt=xxx 12 参

磁盘、图片加密及解密 实现开机自动挂载

磁盘.图片加密及解密 实现开机自动挂载 添加一块磁盘,我这里添加后应该是/dev/sdc 使用不重新启动添加磁盘直接在虚拟机上快捷键ctrl+D打开虚拟机设置添加一块磁盘 先查看添加前的磁盘状况 因为scsi2     id=1 所以使用echo "scsi add-single-device 2 0 2 0">>/proc/scsi/scsi 添加后 lsblk再来查看一下快设备->已经确保添加上了 分区 使用parted操作大于等于4T硬盘 因为这里的分区较小,我

texturepacker打包图片,场景切换时背景图有黑边

在使用TexturePacker打包图片之后,背景图在场景切换(有切换动画)时,明显能看到有黑边,在百度之后解决了. 知乎上边有网友贴出了两种解决方法,我抄过来如下: 第一种: 修改 ccConfig.h 将 #define CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL 0  改为 #define CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL 1  第二种: 在AppDelegate::initInstance()方法的最后调用CCDirect

怎么给图片加密

怎么给图片加密 相信每个人都会有一些私密的照片不像与人共享,有的人说这个很简单,在qq空间或是其他的社交工具上传然后设置密码.这种地方不一定安全,相信很多人都有同感,有种此地无银三百两的意思,稍微了解一点电脑知识的人都能够轻易的将其解密,这样你想保住的隐私就会公之于众.但是放在电脑里也不安全,特别是学生,可能一个寝室只有一台电脑,电脑就会成功公用电脑,这个时候电脑里面存储的图片就非常的危险,怎么对图片进行加密是急需解决的一个问题,有什么文件夹加密软件能用吗? 这个问题我问过很多的人,大家都推荐护

cocos2dx学习:TexturePacker的使用

首先要解释一下,为什么要使用TexturePacker? 这是应为我们做的游戏最终要运行在Android手机或者苹果手机上,而Android或者ios系统使用的是OpenGL ES来渲染.所以我们要针对OpenGL ES来进行优化. 内存方面,OpenGL ES纹理要求宽和高都是2的n次幂的倍数.想一想,如果图片的宽为33,而高为65,那么图片加载到内存后的大小为多少?考虑到宽和高都是2的n次幂,所以加载到内存后的大小是64*128.所以我们可以考虑将小的图片拼成到的图片,然后加载. 渲染速度方

北京集训TEST16——图片加密(fft+kmp)

题目: Description CJB天天要跟妹子聊天,可是他对微信的加密算法表示担心:"微信这种加密算法,早就过时了,我发明的加密算法早已风靡全球,安全性天下第一!" CJB是这样加密的:设CJB想加密的信息有 m 个字节.首先,从网上抓来一张 n(n≥m) 个字节的图片,分析里面的每个字节(byte).每个字节有8位(bit)二进制数字.他想替换掉某些字节中最低位的二进制数字,使得这张图片中,连续 m 个字节恰为他想加密的信息.这样,图片看起来没什么区别,却包含了意味深长的信息.

Cocos2d-x优化中关于背景图片优化

由于背景图片长时间在场景中保存,而且图片很多,我们可以对其进行一些优化.我们通过如下几个方面考虑优化:1.不要Alpha通道背景图片的特点是不需要透明的,所以纹理格式可以采用不带有Alpha通道格式,所以RBG565格式比较适合背景图片.2.拼图背景图片与其它的图片纹理格式的不同,我们在创建精灵表的时候,没有办法将RBG565格式的背景图片与其它的纹理图片(如:RGBA4444)做在一个精灵表,所以基于格式的考虑我们可以将多个背景放置在一个精灵表中的,但是要注意这个精灵表拼接成的大图文件不能太大

cocos2dx之保存截屏图片

http://blog.csdn.net/ganpengjin1/article/details/19088921 我们要保存当前的运行的scene的截图的话,我用到CCRenderTexture,看例子代码: [cpp] view plaincopy CCSize size = CCDirector::sharedDirector()->getWinSize(); CCRenderTexture *screen = CCRenderTexture::create(size.width, siz

图片加密

一.图片概述 每种图片都有自己的文件格式和压缩方式:文件格式主要由文件头和文件域组成.压缩方式有很多种如PNG格式的图片采用调色板或者行程编码方式的进行压缩.PNG采用无损压缩,jpg则采用有损压缩的方式进行压缩等等. 二.图像加密种类 1.置乱加密:有RGB平移置乱.HENON置乱.混沌置乱等; 2.灰度加密:DES加密.HILL加密.LOGISTIC加密.ECA加密等; 3.混合加密:复合混沌加密.baker加密.位平面加密等; 4.频域加密:DCT加密.HAAR加密等; 这些加密算法有的在