彩色图片渐变成灰色图片

在遇到英雄死亡需要让它变黑白的过程中参考ps中图片渐变成灰色的方式

解决思路是使用两张图片,一张彩色一张黑白,让彩色透明度随时间增长变0

网上有彩图变灰的代码如下

do
    {
        const GLchar* pszFragSource =
        "#ifdef GL_ES \n \
        precision mediump float; \n         #endif \n \
        uniform sampler2D u_texture; \n         varying vec2 v_texCoord; \n         varying vec4 v_fragmentColor; \n         void main(void) \n         { \n         // Convert to greyscale using NTSC weightings \n \
        vec4 col = texture2D(u_texture, v_texCoord); \n         float grey = dot(col.rgb, vec3(%f, %f, %f)); \n         gl_FragColor = vec4(grey, grey, grey, col.a); \n         }";
        auto strPath = StringUtils::format(pszFragSource, r, g, b);
        GLProgram* pProgram = new GLProgram();
        pProgram->initWithByteArrays(ccPositionTextureColor_noMVP_vert, strPath.c_str());//pszFragSource);
        sp->setGLProgram(pProgram);
        CHECK_GL_ERROR_DEBUG();

        sp->getGLProgram()->bindAttribLocation(GLProgram::ATTRIBUTE_NAME_POSITION, GLProgram::VERTEX_ATTRIB_POSITION);
        sp->getGLProgram()->bindAttribLocation(GLProgram::ATTRIBUTE_NAME_COLOR, GLProgram::VERTEX_ATTRIB_COLOR);
        sp->getGLProgram()->bindAttribLocation(GLProgram::ATTRIBUTE_NAME_TEX_COORD, GLProgram::VERTEX_ATTRIB_TEX_COORD);
        CHECK_GL_ERROR_DEBUG();

        sp->getGLProgram()->link();
        CHECK_GL_ERROR_DEBUG();

        sp->getGLProgram()->updateUniforms();
        CHECK_GL_ERROR_DEBUG();
    } while (0);

图片渐变成黑白代码如下

    auto strPath = getFilePath("caocao", FileSuffix::Png);
    auto sp = Sprite::create(strPath);
    addChild(sp, 0);
    setSpriteGray(sp, 0.299, 0.587, 0.114);
    sp->setPosition(300, 400);
    cc = Sprite::create(strPath);
    addChild(cc, 1);
    cc->setPosition(sp->getPosition());
    auto fadeTo = FadeOut::create(3.f);
    cc->runAction(/*Sequence::create*/(fadeTo));
时间: 2024-10-13 21:21:47

彩色图片渐变成灰色图片的相关文章

图片处理--处理成灰色图片

把已知图片处理成灰色的图片. -(UIImage*)getGrayImage:(UIImage*)sourceImage { int width = sourceImage.size.width; int height = sourceImage.size.height; CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray(); CGContextRef context = CGBitmapContextCreate (nil,wi

android 将图片转换成黑白图片

先调用android的系统工具,获取图片生成bitmap文件,再使用android中的二值化技术,将图片转化成黑白图片,主界面代码: package com.example.blackwhite; import java.io.IOException; import android.media.ThumbnailUtils; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore;

如何将方形图片磨成圆形图片

如何将方形图片磨成圆形图片 在开发中经常会有一些需求,比如显示头像,显示一些特殊的需求,将图片显示成圆角或者圆形或者其他的一些形状.但是往往我们手上的图片或者从服务器 获取到的图片都是方形的.这时候就需要我们自己进行处理,将图片处理成所需要的形状. 使用Xfermode 两图相交方式 通过查找资料通过查找资料发现android中可以设置画笔的Xfermode即相交模式,从而设置两张图相交之后的显示方式,具体模式见下图,源码可以去android apidemo.(SRC 为我们要画到目标图上的图即

Css调整图片大小[将大图片压缩成小图片]

<div style="width:设置宽px; height:设置高px; background-image: url('图片路径'); filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='图片路径',sizingMethod='scale'); float:left;background-size:设置宽px 设置高px;"> </div> 采用滤镜[filter]效果,实现大图片压缩

用filter:grayscale将图片过滤成灰色

设置成百分之百直接过滤成灰色: img{filter:gray; filter:grayscale(100%); -0-filter:grayscale(100%); -moz-filter:grayscale(100%); -webkit-filter:grayscale(100%); } 可以通过设置具体百分数值来定义需求: img{filter:gray; filter:grayscale(60%); -0-filter:grayscale(60%); -moz-filter:graysc

把图片转换成圆形图片

调用:(bt是Bitmap) head_portrait.setImageBitmap(ToRoundBitmap.toRoundBitmap(bt)); 转换圆形的方法: 1 package com.ghp.tools; 2 3 import android.graphics.Bitmap; 4 import android.graphics.Canvas; 5 import android.graphics.Color; 6 import android.graphics.Paint; 7

ios 将矩形图片裁剪成圆形图片

在ios中将一个正方形的图片裁剪成圆形的图片是一件非常容易的事情, 直接设置 imageView.layer.cornerRadius 这个属性, 再设置 imageView.clipsToBounds = YES 就可以了, 但是对于长方形的图片来说这个方式裁剪出来的就不是一个圆形的了, 而是个椭圆的. 解决这个问题就需要自己画 并且需要计算. 最终效果图如下: tips: 如果是裁剪矩形的话, 是从图片中心的位置为圆心剪裁的. 代码如下: @implementation UIImage (C

iOS给一张矩形图片剪切成圆形图片

随着APP发展,个人账户的注册和登陆,都有头像的设置,圆形头像也越来越多,此方法正是对剪切圆头像的封装. //****************************************************************************************************************// //******************************************************************************

Xcode9学习笔记51 - 将一张普通的图片转换成灰度图片CGColorSpaceCreateDeviceGray

override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let image = UIImage(named: "img01")//从项目资源中读取一张图片 let grayedImage = self.grayImage(image: image!)//调用灰度图转换方法,将图片转换成灰度图 let