cocos2d-x图片变灰或者变亮
//根据现有CCSprite,变亮和变灰
CCSprite*
FlyLeaf::graylightWithCCSprite(CCSprite* oldSprite,
bool
isLight)
{
//CCSprite转成CCimage
CCPoint
p = oldSprite->getAnchorPoint();
oldSprite->setAnchorPoint(ccp(0,0));
CCRenderTexture
*outTexture = CCRenderTexture::create((
int
)oldSprite->getContentSize().width,(
int
)oldSprite->getContentSize().height);
outTexture->begin();
oldSprite->visit();
outTexture->end();
oldSprite->setAnchorPoint(p);
CCImage*
finalImage = outTexture->newCCImage();
unsigned
char
*pData
= finalImage->getData();
int
iIndex
= 0;
if
(isLight)
{
for
(
int
i
= 0; i < finalImage->getHeight(); i ++)
{
for
(
int
j
= 0; j < finalImage->getWidth(); j ++)
{
//
highlight
int
iHightlightPlus
= 50;
int
iBPos
= iIndex;
unsigned
int
iB
= pData[iIndex];
iIndex
++;
unsigned
int
iG
= pData[iIndex];
iIndex
++;
unsigned
int
iR
= pData[iIndex];
iIndex
++;
//unsigned
int o = pData[iIndex];
iIndex
++;
//原来的示例缺少
iB
= (iB + iHightlightPlus > 255 ? 255 : iB + iHightlightPlus);
iG
= (iG + iHightlightPlus > 255 ? 255 : iG + iHightlightPlus);
iR
= (iR + iHightlightPlus > 255 ? 255 : iR + iHightlightPlus);
pData[iBPos]
= (unsigned
char
)iB;
pData[iBPos
+ 1] = (unsigned
char
)iG;
pData[iBPos
+ 2] = (unsigned
char
)iR;
}
}
}
else
{
for
(
int
i
= 0; i < finalImage->getHeight(); i ++)
{
for
(
int
j
= 0; j < finalImage->getWidth(); j ++)
{
//
gray
int
iBPos
= iIndex;
unsigned
int
iB
= pData[iIndex];
iIndex
++;
unsigned
int
iG
= pData[iIndex];
iIndex
++;
unsigned
int
iR
= pData[iIndex];
iIndex
++;
//unsigned
int o = pData[iIndex];
iIndex
++;
//原来的示例缺少
unsigned
int
iGray
= 0.299 * iR + 0.587 * iG + 0.114 * iB;
pData[iBPos]
= pData[iBPos + 1] = pData[iBPos + 2] = (unsigned
char
)iGray;
}
}
}
CCTexture2D
*texture =
new
CCTexture2D;
texture->initWithImage(finalImage);
CCSprite*
newSprite = CCSprite::createWithTexture(texture);
delete
finalImage;
texture->release();
return
newSprite;
}
cocos2d-x图片变灰或者变亮的更多相关文章
- CSS使图片变灰
为了悼念,各大网站都纷纷将自己的站点颜色调灰,就连图片也一样,到底如何实现的呢,请看下面的代码. 〈img src="http://hovertree.com/hvtimg/201512/f ...
- NGUI 图片变灰
效果图 1.先准备好一个变灰shader.代码如下 Shader "Custom/Gray" { Properties { _MainTex ("Base (RGB), ...
- c# winform 把彩色图片转换为灰色的图片,变灰,灰度图片,速度很快,safe,unsafe
把彩色图片转换为灰色的图片,直接用.net接口遍历每个像素点转换的效率非常低,800K的图片65万像素我的电脑要用5分钟,而用了unsafe,速度提高了几千倍,同样的图片只用了0.几秒 附一个常用的遍 ...
- Unity图片变灰的方式
http://www.tuicool.com/articles/Vruuqme NGUI中的Button差点儿是最经常使用到的控件之中的一个,而且能够组合各种组件(比方UIButtonColor,UI ...
- JAVA彩色图片变灰处理
File file = new File("F:/firefox.png"); File destFile = new File("F:/pic/" + Sys ...
- 图片变灰css3
-webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filte ...
- css3图片变灰
html{ filter:grayscale(100%); -webkit-filter:grayscale(100%); -moz-filter:grayscale(100%); -ms-filte ...
- 关于cocos2d-x精灵加亮及变灰效果
//根据现有CCSprite,变亮和变灰 static CCSprite* graylightWithCCSprite(CCSprite* oldSprite,bool isLight) { //CC ...
- 怎么让让整个HTML页面变灰
怎么让让整个HTML页面变灰 其实很简单,我们只需要一句话. html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1 ...
随机推荐
- BIND9配置文件详解模板[转载]
在CU上看到了一篇关于BIND9配置文件详解的文章,感觉不错,现转载了分享一下. //named.conf 注释说明 by shellyxz@163.com// 此文件对bind9的默认配置文件的说明 ...
- apk反编译(8)如何完全防止反编译?
在android 的应用很难做到完全防止反编译,即使用ProGuard混淆的后,也能得到smali代码,这个语法也很简单,很容易理解. 只能通过增加破解难度和成本,使破解者失去耐心. 其中一个常见解决 ...
- 一些非常有用的html,css,javascript代码片段(持久更新)
1.判断设备是否联网 if (navigator.onLine) { //some code }else{ //others code } 2.获取url的指定参数 function getStrin ...
- 面向对象设计Object Oriented Design
http://www.codeproject.com/Articles/93369/How-I-explained-OOD-to-my-wife http://www.cnblogs.com/niyw ...
- ER模型到关系模型的转换规则
E-R模型向关系模型的转换规则: 一.两元联系的转换规则 (1)实体类型的转换 将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系的键. (2)联系类型的转换 a实体间的联 ...
- C++中关于指针初始化和使用NULL的理解
1.严禁使用未被初始化的指针:C++创建指针的时候,只分配存储地址的内存,并不会分配存储数据的内存,所以指针可能指向任何位置. (1)使用解除运算符(*)之前,一定要对指针初始化,否则若声明的指针刚好 ...
- git文件未改动pull的时候提示冲突
今天在mac下使用git工具,出现一个很奇怪的问题. 先声明当前工作目录是干净的,运行 git status 没有任何文件改动,且没有任何需要push的文件. 我执行 git pull 命令,直接提示 ...
- [转]ASP.NET 页生命周期概述
原文链接:http://msdn.microsoft.com/zh-cn/library/ms178472(v=vs.110).aspx 对应版本:.NET 4.0 ASP.NET 页运行时,此页将 ...
- UVA 11865 Stream My Contest(最小树形图)
题意:N台机器,M条有向边,总资金C,现要到搭建一个以0号机(服务器)为跟的网路,已知每条网线可以把数据从u传递到v,其带宽为d,花费为c,且d越大,传输速度越快,问能够搭建的传输速度最快的网络d值是 ...
- crtbegin_dynamic.o: No such file: No such file or directory
/homesec/android2/zhangbin/053work3/hi050src/HiSTBAndroidV400R001C00SPC050B012/prebuilt/linux-x86/to ...