美圖秀秀濾鏡之對比,秀秀濾鏡對比
對比指的是一幅映像中明暗地區最亮的白和最暗的黑之間不同亮度層級的測量,即指一幅映像灰階反差的大小。
在GPUImage中通過GPUImageContrastFilter來實現
片段著色器
varying highp vec2 textureCoordinate; uniform sampler2D inputImageTexture; uniform lowp float contrast; void main() { lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate); gl_FragColor = vec4(((textureColor.rgb - vec3(0.5)) * contrast + vec3(0.5)), textureColor.w); }
每個像素點的RGB值-0.5 乘以對比值 然後+0.5產生新的像素點RGB
+ (UIImage *)changeValueForContrastFilter:(float)value image:(UIImage *)image;{ GPUImageContrastFilter *filter = [[GPUImageContrastFilter alloc] init]; filter.contrast = value; [filter forceProcessingAtSize:image.size]; GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image]; [pic addTarget:filter]; [pic processImage]; [filter useNextFrameForImageCapture]; return [filter imageFromCurrentFramebuffer];}
效果
對比低 對比高