1.效果图
有一个seekbar,可以调节gamma的值

2.shader
public static final String GAMMA_FRAGMENT_SHADER = "" +
"varying highp vec2 textureCoordinate;\n" +
" \n" +
" uniform sampler2D inputImageTexture;\n" +
" uniform lowp float gamma;\n" +
" \n" +
" void main()\n" +
" {\n" +
" lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);\n" +
" \n" +
" gl_FragColor = vec4(pow(textureColor.rgb, vec3(gamma)), textureColor.w);\n" +
" }";
3.原理

对像素值重新映射
该文章介绍了一个使用seekbar来调整gamma值的特性,通过一个定制的fragmentshader对图像进行实时处理。shader代码中,每个像素值被重新映射,应用gamma校正,以改变图像的亮度和对比度。此功能主要用于图像和色彩控制。
300

被折叠的 条评论
为什么被折叠?



