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 ...
随机推荐
- ios 开发中 developer tools access 总是要输入密码问题的解决
我一直没有想法去解决这个问题:打开iphone模拟器的时候,老是弹出developer tools access 让我输入密码, 今天我在打开模拟器的时候又弹出这个对话框,我愤怒了,于是我在网上查了一 ...
- new int[]和new int()的区别
1. new int[] 是创建一个int型数组,数组大小是在[]中指定,例如:int * p = new int[10]; //p执行一个长度为10的int数组.2. new int()是创建一个i ...
- 高斯消元 分析 && 模板 (转载)
转载自:http://hi.baidu.com/czyuan_acm/item/dce4e6f8a8c45f13d7ff8cda czyuan 先上模板: /* 用于求整数解得方程组. */ #inc ...
- 函数xdes_init
/**********************************************************************//** Inits an extent descript ...
- 可视化PK纯代码
简述 其实今天说的内容不仅仅局限于Qt,在很多其它语言或者框架中也适用,那就是 - 用可视化工具or文本编辑器?拖or不拖? 如果有人问我喜欢脱or不脱?我会毫不犹豫地说不脱,因为我比较矜持O(∩_∩ ...
- BZOJ 3166 Alo
处理出每个数最靠近它的左右两个比它大的数. 然后可持久化trie. #include<iostream> #include<cstdio> #include<cstrin ...
- zoj 1119 /poj 1523 SPF
题目描述:考虑图8.9中的两个网络,假定网络中的数据只在有线路直接连接的2个结点之间以点对点的方式传输.一个结点出现故障,比如图(a)所示的网络中结点3出现故障,将会阻止其他某些结点之间的通信.结点1 ...
- <五>面向对象分析之UML核心元素之边界
一:基本概念
- [转]Android调用so文件(C代码库)方法详解
一.为什么调用c的dll要用源码编译成so库 Android系统是基于linux内核的移动终端系统,而dll是在windows环境下生成和调用的c库,所以不可以直接为android系统调用. 二.安装 ...
- vs 2005中解决找不到模板项
开始-->所有程序-->Microsoft Visual Studio 2005-->Visual Studio Tools-->Visual Studio 2005 Comm ...