All Projects → wysaid → Ios Gpuimage Plus

wysaid / Ios Gpuimage Plus

Licence: mit
GPU accelerated image filters for iOS, based on OpenGL.

Projects that are alternatives of or similar to Ios Gpuimage Plus

React Native Gpuimage
GPUImage Component in React Native
Stars: ✭ 45 (-79.26%)
Mutual labels:  opengl, gpuimage, filter
Android Opengl Canvas
An Android library that provides views using openGL canvas to draw things on SurfaceView or TextureView.
Stars: ✭ 815 (+275.58%)
Mutual labels:  opengl, gpuimage
Bbmetalimage
A high performance Swift library for GPU-accelerated image/video processing based on Metal.
Stars: ✭ 677 (+211.98%)
Mutual labels:  gpuimage, filter
Metalpetal
A GPU accelerated image and video processing framework built on Metal.
Stars: ✭ 907 (+317.97%)
Mutual labels:  opengl, filter
Android Instagram Filter
a android image filter like instagram
Stars: ✭ 360 (+65.9%)
Mutual labels:  gpuimage, filter
Pesdk Android Demo
A fully customizable photo editor for your app.
Stars: ✭ 464 (+113.82%)
Mutual labels:  opengl, filter
Librestreaming
Android real-time effect filter rtmp streaming library.using Mediacodec HWencoding&librtmp stream.
Stars: ✭ 856 (+294.47%)
Mutual labels:  gpuimage, filter
Gpuvideo Android
This library apply video filter on generate an Mp4 and on ExoPlayer video and Video Recording with Camera2.
Stars: ✭ 403 (+85.71%)
Mutual labels:  gpuimage, filter
Android Gpuimage
Android filters based on OpenGL (idea from GPUImage for iOS)
Stars: ✭ 8,211 (+3683.87%)
Mutual labels:  opengl, gpuimage
Android Gpuimage Plus
Android Image & Camera Filters Based on OpenGL.
Stars: ✭ 1,554 (+616.13%)
Mutual labels:  opengl, filter
Ezfilter
A lightweight (<180KB), easy-to-extend Android filter and dynamic sticker framework for adding filters and stickers for camera, video, bitmap and view.(一个轻量级(<180KB)、易扩展的Android滤镜和动态贴纸框架,支持摄像头、视频、图片和视图添加滤镜和贴纸。)
Stars: ✭ 155 (-28.57%)
Mutual labels:  opengl, filter
Android Ffmpeg Camerarecord
使用JavaCV提供的支持, 使用OpenGL实时处理+显示摄像头采集的图像, 并使用FFMPEG实时录制音视频
Stars: ✭ 334 (+53.92%)
Mutual labels:  opengl, filter
Ios tips
iOS的一些示例,持续更新中:1、AVFoundation 高仿微信相机拍摄和编辑 2、AVFoundation 人脸检测、实时滤镜、音视频编解码、GPUImage框架的使用等音视频相关内容 3、OpenGLES 4、LeetCode算法练习 5、iOS Crash防护和APM监控 6、WKWebView相关的内容 等........
Stars: ✭ 896 (+312.9%)
Mutual labels:  gpuimage, filter
Android Ultimategpuimage
provide video record method with filter and other cool staff. Yes, It's a full functional video recorder
Stars: ✭ 188 (-13.36%)
Mutual labels:  gpuimage, filter
Gpuimage X
A Cross-platform (for both Android & iOS) Framework for GPU-based Filters, Video and Image Processing.
Stars: ✭ 154 (-29.03%)
Mutual labels:  gpuimage, filter
Ios Nbuimagepicker
Modular image picker with Simulator-compatible AVFondation camera, assets library, filters and more.
Stars: ✭ 196 (-9.68%)
Mutual labels:  gpuimage, filter
Glium
Safe OpenGL wrapper for the Rust language.
Stars: ✭ 2,694 (+1141.47%)
Mutual labels:  opengl
Structured Filter
jQuery UI widget for structured queries like "Contacts where Firstname starts with A and Birthday before 1/1/2000 and State in (CA, NY, FL)"...
Stars: ✭ 213 (-1.84%)
Mutual labels:  filter
Filter Console
Filter out unwanted `console.log()` output
Stars: ✭ 203 (-6.45%)
Mutual labels:  filter
Glmark2
glmark2 is an OpenGL 2.0 and ES 2.0 benchmark
Stars: ✭ 199 (-8.29%)
Mutual labels:  opengl

iOS-GPUImage-Plus

GPU accelerated filters for iOS based on OpenGL.

New feature: Face effects will be created with the ios11's VNSequenceRequestHandler & VNDetectFaceLandmarksRequest.

Android version: https://github.com/wysaid/android-gpuimage-plus

Abstract

  • This repo is open source now. You can use cge.framework in your project.

    1. You can add the cge.framework to your project, then add the code

    #import <cge/cge.h> //Everything is done.

    1. If you're using CocoaPods, add this to your Podfile:

    pod 'cge', :git => 'https://github.com/wysaid/ios-gpuimage-plus.git'

    or with the latest static library:

    pod 'cge', :git => 'https://github.com/wysaid/ios-gpuimage-plus-pod.git', :tag => '2.5.1'

    Dependencies: libc++, ImageIO.framework, MobileCoreServices.framework

    Note: The filters are written in C++, so you should change your source file extensions to "mm" if you want use all features. But it is not necessary when you're using the interface-headers just like the demo.

  • Hundreds of built-in filters are available in the demo. 😋If you'd like to add your own filter, please take a look at the manual page. Or you can follow the demo code. The new custom filters should be written in C++.

  • To build the source code, you can use the xcode project in the 'library' folder.

Manual

1. Usage

Sample Code for doing a filter with UIImage

//Simply apply a filter to an UIImage.
- (void)viewDidLoad
{
    UIImage* srcImage = [UIImage imageNamed:@"test.jpg"];
    //HSL Adjust (hue: 0.02, saturation: -0.31, luminance: -0.17)
    //Please see the manual for more details.
    const char* ruleString = @"@adjust hsl 0.02 -0.31 -0.17";
    UIImage* resultImage = cgeFilterUIImage_MultipleEffects(srcImage, ruleString, 1.0f, nil);

    //Then the dstImage is applied with the filter.
    //It's so convenient, isn't it?
}

2. Custom Shader Filter

2.1 Write your own filter

Your filter must inherit CGEImageFilterInterfaceAbstract or its child class. Most of the filters are inherited from CGEImageFilterInterface because it has many useful functions.

// A simple customized filter to do a color reversal.
class MyCustomFilter : public CGE::CGEImageFilterInterface
{
public:
    
    bool init()
    {
        CGEConstString fragmentShaderString = CGE_SHADER_STRING_PRECISION_H
        (
        varying vec2 textureCoordinate;  //defined in 'g_vshDefaultWithoutTexCoord'
        uniform sampler2D inputImageTexture; // the same to above.

        void main()
        {
            vec4 src = texture2D(inputImageTexture, textureCoordinate);
            src.rgb = 1.0 - src.rgb;  //Simply reverse all channels.
            gl_FragColor = src;
        }
        );

        //m_program is defined in 'CGEImageFilterInterface'
        return m_program.initWithShaderStrings(g_vshDefaultWithoutTexCoord, s_fsh);
    }

    //void render2Texture(CGE::CGEImageHandlerInterface* handler, GLuint srcTexture, GLuint vertexBufferID)
    //{
    //  //Your own render functions here.
    //  //Do not override this function to use the CGEImageFilterInterface's.
    //}
};

Note: To add your own shader filter with c++. Please see the demo for further details.

2.2 Run your own filter

Please see this: https://github.com/wysaid/ios-gpuimage-plus/blob/master/library/filterLib/cgeCustomFilters.h#L34

3. Filter Rule String

En: https://github.com/wysaid/android-gpuimage-plus/wiki/Parsing-String-Rule-En

Ch: https://github.com/wysaid/android-gpuimage-plus/wiki/Parsing-String-Rule

Tool

Some utils are available for creating filters: https://github.com/wysaid/cge-tools

Tool

License

MIT License

Donate

Alipay:

Alipay

Paypal:

Paypal

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].