`
sjkgxf7191
  • 浏览: 257156 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用着色器作为滤镜

阅读更多

原文:http://www.pixelbender.cn/?p=76

 

使用着色器作为滤镜时,过滤出的图像(显示对象或BitmapData 对象)将传递给着色器。

着色器使用输入图像创建滤镜输出 ,该输出通常为原始图像经过修改的版本。

如果过滤出的对象是 BitmapData 对象,着色器输出将成为 BitmapData 对象的内容,并调用该对象的 applyFilter () 方法。

var myFilter:ShaderFilter = new ShaderFilter(myShader);
homeButton.filters = [myFilter];

 

在使用着色器作为滤镜时,着色器必须由至少一个输入 定义。

如示例所示,您未在代码中设置输入值 。而是将过滤出的显示对象BitmapData 对象设置为输入图像

 

Pixel Bender中变量定义代码:

input image4 src;
output float4 dst;

 

as代码:

shader=new Shader(loader.data);
var target:Shape=new Shape();
addChild(target);
var g:Graphics=target.graphics;
var c:Array=[0x990000, 0x445500, 0x007799];
var a:Array=[255, 255, 255];
var r:Array=[0, 127, 255];
var m:Matrix=new Matrix();
m.createGradientBox(400, 200);
g.beginGradientFill(GradientType.LINEAR, c, a, r, m);
g.drawRect(0, 0, 400, 200);
g.endFill();
// 应用shader滤镜
var invertFilter:ShaderFilter=new ShaderFilter(shader);
target.filters=[invertFilter];

 

不适用 Pixel Bender滤镜的截图:


 

使用 Pixel Bender滤镜的截图:


  • 大小: 4.5 KB
  • 大小: 5.5 KB
分享到:
评论

相关推荐

    WebH5视频滤镜的百搭解决方案-WebGL着色器.docx

    通过使用WebGL着色器,我们可以实现高度定制化的视频滤镜效果,这些效果远远超出了CSS3滤镜所能达到的范围。尽管WebGL的学习曲线相对较高,但它为Web开发者提供了无限的可能性,特别是在图像处理领域。未来,随着Web...

    OpenGLES 在 android 上显示摄像头滤镜效果

    在onDrawFrame()方法中,先设置视口和投影矩阵,然后启用着色器程序,将摄像头数据(已转换为RGB)作为纹理输入,通过片段着色器进行滤镜处理。最后,调用glDrawArrays()或glDrawElements()绘制帧缓冲区到屏幕。 ...

    GPUImage多种滤镜的使用示范以及美颜滤镜初步实现

    除了直接应用预设滤镜,还可以通过自定义着色器语言(GLSL)创建自定义滤镜,实现更复杂的图像处理效果。这需要对OpenGL ES有一定的理解,但GPUImage库已经封装了许多底层细节,使得编写自定义滤镜相对简单。 总的...

    wpf滤镜效果可选参数

    ShaderEffect是一个基类,允许开发者利用Direct3D的着色器语言(HLSL,High-Level Shader Language)编写自定义的滤镜效果。HLSL是一种强大的编程语言,专为图形硬件设计,可以实现复杂的计算和渲染效果。 ...

    Android常见Shader着色器效果源码.zip

    Shader着色器通常被用来实现复杂的视觉效果,如颜色变换、光影效果、纹理映射等,极大地提升了用户体验。本资源"Android常见Shader着色器效果源码.zip"包含了若干常见的Shader实现,适用于Android开发者深入理解和...

    GPUImage滤镜

    除了预定义的滤镜,GPUImage还支持自定义着色器语言(GLSL)编写新的滤镜效果。通过创建`GPUImageFilter`子类,并重写`fragmentShaderFromString:`方法,可以提供自己的片段着色器代码,实现更复杂的图像处理算法。 ...

    通过利用GPU上的着色器来加速Android设备上的图像处理的框架。_Java_下载.zip

    3. **设置着色器参数**:根据图像处理需求,可能需要设置着色器的输入参数,如滤镜强度、模糊半径等。 4. **绘制调用**:调用`glDrawArrays()`或`glDrawElements()`进行绘制,GPU会执行着色器程序,对每个像素进行...

    android 图像滤镜处理 Demo

    两者都可以作为滤镜操作的基础。 2. **滤镜库的使用**: Android社区有许多开源滤镜库,如 Glide, Picasso, Fresco 等,它们不仅用于图片加载,还支持基本的滤镜应用。此外,Android GPU Image Library 和 Android ...

    GLSL滤镜之马赛克.zip

    5. **三角形马赛克**:不同于传统的方形或六边形,这种滤镜使用三角形作为基本单元。这通常涉及到对图像进行细分,创建一个三角网,然后对每个三角形内的像素应用相同的颜色。 在实现这些滤镜时,我们需要编写GLSL...

    基于exoplayer播放器的高斯模糊视频滤镜Demo

    4. **应用高斯模糊滤镜**: 在片段着色器中编写模糊算法,可能涉及到多次卷积操作,每次操作使用不同大小的高斯核。为了提高性能,可能采用分块模糊或者离屏渲染技术。 5. **实时更新与显示**: 每当有新的视频帧可用...

    camera2 opengl实现滤镜效果录制视频

    滤镜效果通常通过创建自定义的OpenGL着色器实现。在OpenGL ES中,着色器是用GLSL(OpenGL Shading Language)编写的。你可以创建一个顶点着色器来处理几何变换,以及一个片段着色器来处理像素颜色。对于黑白滤镜,...

    在android上用opengl 处理camera ,通过frag shader增加各种滤镜

    这个着色器计算每个像素的亮度(灰度值),并将其作为新的颜色输出。 5. **绘制纹理**:设置好着色器后,可以使用`glDrawArrays()`或`glDrawElements()`绘制一个全屏 quad(二维四边形),将相机纹理覆盖到整个...

    Android例子源码支持实时摄像头滤镜的GPUImage

    滤镜通常由一系列的顶点着色器(Vertex Shader)和片段着色器(Fragment Shader)组成。顶点着色器处理图像的几何形状,而片段着色器则处理每个像素的颜色。在OpenGL ES中,我们使用GLSL(OpenGL Shading Language)...

    基于openGL实现的安卓滤镜相机app

    这种滤镜的实现依赖于OpenGL ES的顶点着色器和片段着色器,它们允许开发者自定义像素的色彩处理,实现丰富的颜色变换效果。 下部分镜则支持模式调节的滤镜,这可能包括亮度、对比度、饱和度等调整,或者是各种预设...

    MagicCamera-ImageReader, 关于美颜/滤镜 从OpenGl录制视频的一种方案.zip

    在美颜功能中,我们可以使用OpenGl的顶点着色器和片段着色器来实现。顶点着色器处理几何形状,而片段着色器则负责像素级别的操作,如肤色调整、磨皮等。通过自定义这两个着色器,可以实现不同程度的美白、磨皮、红润...

    CamareFilter:camare滤镜练习 黑白滤镜

    在黑白滤镜的实现中,片段着色器会接收每个像素的RGB值,然后根据灰度公式(R*0.3 + G*0.59 + B*0.11)将其转换为灰度值,最后将这个值作为新的颜色输出。 为了在GLSurfaceView上实现这个过程,我们需要做以下步骤...

    Shader-Image-Processing:使用三个JS和着色器的一系列图像处理算法

    JavaScript作为Web开发中的主要脚本语言,通常用于控制页面的行为,而当它与着色器结合时,可以增强Web应用的视觉表现力。 在WebGL中,着色器分为两种类型:顶点着色器(Vertex Shader)和片段着色器(Fragment ...

    iOS给图片添加滤镜&使用openGLES动态渲染图片详解及实例

    2. **设置着色器**:编写和使用顶点和片段着色器,这些着色器可以应用自定义的滤镜效果。 3. **绘制**:利用纹理和着色器在屏幕或帧缓冲区上绘制图片。 例如,以下是一个简单的片段着色器代码,它可以实现基础的...

    swift-iOS视频拍摄视频滤镜视频水印

    GPUImage提供了大量的预定义滤镜,如模糊、对比度调整、色彩平衡等,也可以自定义GLSL着色器创建独特效果。通过将AVFoundation的视频输出与GPUImage的过滤器链结合,可以在捕获视频的同时实时应用滤镜。例如,...

    Colorize:使用CSS滤镜为灰度网页着色

    "Colorize: 使用CSS滤镜为灰度网页着色"这个主题,就是关于如何利用CSS的滤镜功能来为原本呈现灰度效果的网页添加颜色,从而增强视觉表现力。下面将详细解释这一技术以及相关的HTML知识。 首先,CSS滤镜是一种允许...

Global site tag (gtag.js) - Google Analytics