IOS implements image sketch and ios image sketch.

Source: Internet
Author: User

IOS implements image sketch and ios image sketch.

Use the GPUImageSketchFilter object to achieve image sketch Effect

NSString *const kGPUImageSketchFragmentShaderString = SHADER_STRING( precision mediump float;  varying vec2 textureCoordinate; varying vec2 leftTextureCoordinate; varying vec2 rightTextureCoordinate;  varying vec2 topTextureCoordinate; varying vec2 topLeftTextureCoordinate; varying vec2 topRightTextureCoordinate;  varying vec2 bottomTextureCoordinate; varying vec2 bottomLeftTextureCoordinate; varying vec2 bottomRightTextureCoordinate;  uniform float edgeStrength; uniform sampler2D inputImageTexture;  void main() {     float bottomLeftIntensity = texture2D(inputImageTexture, bottomLeftTextureCoordinate).r;     float topRightIntensity = texture2D(inputImageTexture, topRightTextureCoordinate).r;     float topLeftIntensity = texture2D(inputImageTexture, topLeftTextureCoordinate).r;     float bottomRightIntensity = texture2D(inputImageTexture, bottomRightTextureCoordinate).r;     float leftIntensity = texture2D(inputImageTexture, leftTextureCoordinate).r;     float rightIntensity = texture2D(inputImageTexture, rightTextureCoordinate).r;     float bottomIntensity = texture2D(inputImageTexture, bottomTextureCoordinate).r;     float topIntensity = texture2D(inputImageTexture, topTextureCoordinate).r;     float h = -topLeftIntensity - 2.0 * topIntensity - topRightIntensity + bottomLeftIntensity + 2.0 * bottomIntensity + bottomRightIntensity;     float v = -bottomLeftIntensity - 2.0 * leftIntensity - topLeftIntensity + bottomRightIntensity + 2.0 * rightIntensity + topRightIntensity;          float mag = 1.0 - (length(vec2(h, v)) * edgeStrength);          gl_FragColor = vec4(vec3(mag), 1.0); });
+ (UIImage *)applySketchFilter:(UIImage *)image{    GPUImageSketchFilter *filter = [[GPUImageSketchFilter alloc] init];        [filter forceProcessingAtSize:image.size];    GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image];    [pic addTarget:filter];    [pic processImage];    [filter useNextFrameForImageCapture];        return [filter imageFromCurrentFramebuffer];}

  

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.