diff --git a/README.md b/README.md index 77c6e558..5a54e460 100644 --- a/README.md +++ b/README.md @@ -10,28 +10,24 @@

GPUPixel Stars GPUPixel Release - GPUPixel Stars + GPUPixel Stars GPUPixel Stars

--- -> πŸŽ‰πŸŽ‰πŸŽ‰ GPUPixel has added support for the Windows and Linux from [v1.1.0](https://github.com/pixpark/gpupixel/releases/tag/1.1.0), and now it is fully cross-platform supported: iOS | Android | Mac | Win | Linux πŸ‘πŸ»πŸ‘πŸ» - -[GPUPixel]() @ [PixPark](https://github.com/pixpark) +> πŸ‘πŸ»πŸ‘πŸ» GPUPixel has added support for the **Windows** and **Linux** from [v1.1.0](https://github.com/pixpark/gpupixel/releases/tag/1.1.0). And now it is fully cross-platform supported: **iOS | Android | Mac | Win | Linux** πŸŽ‰πŸŽ‰πŸŽ‰ ## Introduction ⛰️ GPUPixel is a high-performance image and video AI beauty effect library written in C++11, Extremely easy to compile and integrate, with a very small library size. πŸ”‘ It is GPU-based and comes with built-in beauty effects filters that can achieve commercial-grade results. -πŸ”Œ It supports platforms including `iOS`, `Android`, `Mac`, `Win`, `Linux` and it can theoretically be ported to any platform that supports OpenGL/ES. +πŸ”Œ It supports platforms including `iOS`, `Android`, `Mac`, `Win` and `Linux`. It can theoretically be ported to any platform that supports OpenGL/ES. >πŸ’‘ The face key points detection currently utilizes the [Face++](https://www.faceplusplus.com.cn/) library, but it will be replaced with either **[VNN](https://github.com/joyycom/VNN)** or **[NCNN](https://github.com/Tencent/ncnn)** in the future. -> The supported versions for Linux and Windows is expected to be completed before the Chinese 2024 New Year. - ## Effects Preview πŸ‘‰ **Video: YouTube | BiliBili** @@ -39,9 +35,9 @@ | **Origin** | **Smooth** | **White** | **ThinFace** | | :---------------------------------------------: | :-----------------------------------------------: | :----------------------------------------------: | :-----------------------------------------------: | -| | | | | +| | | | | | **BigEye** | **Lipstick** | **Blusher** | **ON-OFF** | -| | | | | +| | | | | ## Architecture ![](./docs/image/arch-en.jpg) @@ -92,23 +88,22 @@ This table compares the features supported by **GPUPixel** and **GPUImage**: | Time Taken | 6ms | 5ms | - | - | - | -## Library Size +## Lib Size | | iOS(.framework) | MacOS(.framework) | Android(.aar) | | :---: | :-------------: | :---------------: | :-----------: | | Size | 2.4 MB | 2.6 MB | 2.1 MB | + ## Before You Start -Star us on GitHub, and be instantly notified for new releases! -- Website -- Docs -- Deployment Docs -- FAQ +⭐️ Star us on GitHub, and be instantly notified for new releases! ## Quick Start -### How to Build -Compile using CMake frome v1.1.0. Please search for instructions on how to install and configure CMake. -The generated libraries and applications will be located in the "output" directory of the project's root folder. +### 🌰 How to Build +Compile using CMake frome v1.1.0. Please search for instructions on how to install and configure CMake. + +The generated libraries and app will be located in the "output" directory of the project's root folder. + ### iOS ```shell cd src @@ -140,10 +135,10 @@ cmake --build . --config Debug ``` ### Android -1. Open the directory `src/android/java` in Android Studio +Open the directory `src/android/java` in Android Studio. ### Windows -You need install and config Cmake and MinGW64 +You need install and config Cmake and MinGW64 by yourself. ```shell cd src mkdir build @@ -155,12 +150,12 @@ cmake -G "MinGW Makefiles" .. # Build mingw32-make ``` -### Linux (only test on ubuntu 22.04 lts) +### Linux (Test on ubuntu) ```shell # install cmake sudo apt-get install cmake pkg-config -# install glfw lib +# install dependent lib sudo apt-get install mesa-utils libglu1-mesa-dev freeglut3-dev mesa-common-dev libglfw3-dev # start build @@ -176,7 +171,7 @@ make ``` --- -### App demo +### 🌡 App demo ### iOS Refer to `examples/ios` ### Mac @@ -184,12 +179,13 @@ Refer to `examples/mac` ### Android Refer to `examples/android` or `src/android/java` ### Window and Linux -Refer to `examples/desktop` +Refer to `examples/desktop` + The compilation method is the same as compiling the library. -## How to Use +## πŸ‚ How to Use -**`.h` file** +**Declear filters** ```c++ // video data input @@ -199,7 +195,7 @@ std::shared_ptr face_beauty_filter_; // video data output std::shared_ptr target_raw_output_; ``` -**Create Filter, `.cpp` file** +**Create and link filters** ```c++ gpupixel::GPUPixelContext::getInstance()->runSync([&] { @@ -210,11 +206,12 @@ std::shared_ptr target_raw_output_; face_beauty_filter_ = FaceBeautyFilter::create(); // Add filter - source_raw_input_->addTarget(face_beauty_filter_)->addTarget(target_raw_output_); + source_raw_input_->addTarget(face_beauty_filter_) + ->addTarget(target_raw_output_); } ``` -**Input Image Data I420 or RGBA** +**Input YUV420P or RGBA** ```c++ // ... @@ -261,17 +258,17 @@ target_raw_output_->setPixelsCallbck([=](const uint8_t *data, // Output data callbck ``` -## Star History +## πŸš™ Star History [![Star History Chart](https://api.star-history.com/svg?repos=pixpark/gpupixel&type=Date)](https://star-history.com/#pixpark/gpupixel&Date) -## Contributing -Welcome to contribute codeπŸ™πŸ». +## πŸ’ Contributing +Welcome to contribute code πŸ‘πŸ». -At the same time, please consider supporting Dify by sharing it on social media and at events and conferences. +At the same time, please consider supporting GPUPixel by sharing it on social media and at events and conferences. -## Acknowledgement +## πŸ“”Acknowledgement ### Reference Project 1. [GPUImage](https://github.com/BradLarson/GPUImage) 2. [CainCamera](https://github.com/CainKernel/CainCamera) diff --git a/README_cn.md b/README_CN.md similarity index 100% rename from README_cn.md rename to README_CN.md diff --git a/src/filter/beauty_face_unit_filter.cc b/src/filter/beauty_face_unit_filter.cc index 6a6dc139..75544463 100755 --- a/src/filter/beauty_face_unit_filter.cc +++ b/src/filter/beauty_face_unit_filter.cc @@ -303,10 +303,10 @@ bool BeautyFaceUnitFilter::init() { return false; } - grayImage_ = SourceImage::create(Util::getResourcePath("lookUpGray.png")); - originImage_ = SourceImage::create(Util::getResourcePath("lookUpOrigin.png")); - skinImage_ = SourceImage::create(Util::getResourcePath("lookUpSkin.png")); - customImage_ = SourceImage::create(Util::getResourcePath("lookup2.png")); + grayImage_ = SourceImage::create(Util::getResourcePath("lookup_gray.png")); + originImage_ = SourceImage::create(Util::getResourcePath("lookup_origin.png")); + skinImage_ = SourceImage::create(Util::getResourcePath("lookup_skin.png")); + customImage_ = SourceImage::create(Util::getResourcePath("lookup_light.png")); return true; } diff --git a/src/resources/lookUpCustom.png b/src/resources/lookup_custom.png similarity index 100% rename from src/resources/lookUpCustom.png rename to src/resources/lookup_custom.png diff --git a/src/resources/lookUpGray.png b/src/resources/lookup_gray.png similarity index 100% rename from src/resources/lookUpGray.png rename to src/resources/lookup_gray.png diff --git a/src/resources/lookup2.png b/src/resources/lookup_light.png similarity index 100% rename from src/resources/lookup2.png rename to src/resources/lookup_light.png diff --git a/src/resources/lookUpOrigin.png b/src/resources/lookup_origin.png similarity index 100% rename from src/resources/lookUpOrigin.png rename to src/resources/lookup_origin.png diff --git a/src/resources/lookUpSkin.png b/src/resources/lookup_skin.png similarity index 100% rename from src/resources/lookUpSkin.png rename to src/resources/lookup_skin.png