BurstLinker:跨平台 C++ GIF 编码库
2018-02-11 14:03:44来源:https://github.com/Bilibili/BurstLinker作者:Github人点击
Idea from:square/gifencoder
BurstLinker is a simple C++ GIF encode library. You can easily use it on Android, Windows, Linux or other platforms.
Android platform
Download
Gradle:
implementation 'com.bilibili:burst-linker:latest-version'
Build Environment
Android Studio 3.0.1
NDK r16
Basic usage
int delayMs = 1000;
String filePath = getExternalCacheDir() + File.separator + "out.gif";
BurstLinker burstLinker = new BurstLinker();
try {
burstLinker.init(width, height, filePath);
Bitmap colorBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(colorBitmap);
Paint p = new Paint();
int[] colors = new int[]{0xFFF00000, 0xFFFFFF00, 0xFFFFFFFF};
for (int color : colors) {
p.setColor(color);
canvas.drawRect(0, 0, width, height, p);
burstLinker.connect(colorBitmap, BurstLinker.OCTREE_QUANTIZER,
BurstLinker.NO_DITHER, 0, 0, delayMs);
}
} catch (GifEncodeException e) {
e.printStackTrace();
} finally {
burstLinker.release();
}
Enable RenderScript Support
This is an untested experimental feature
Git branch/feature/render-script
Gradle sync, It will generate the required ScriptC.cpp
Uncomment the line 64 of the /lib/CMakeLists.txt
Run
Unix-like platform
InstallFreeImage
&CMake
Macbrew install freeimage cmake
Debiansudo apt-get install libfreeimage-dev cmake
RedHatsudo yum install freeimage-devel cmake
ArchLinuxsudo pacman -S freeimage cmake
Build
cd /BurstLinker/src
mkdir cmake-build-debug; cd cmake-build-debug
cmake ..
make
Run
./BurstLinker 1000 1.jpg 2.jpg 3.jpg
See out.gif
Windows platform
InstallMicrosoft Visual Studio
&CMake
Build
cd /BurstLinker/src
mkdir cmake-build-debug; cd cmake-build-debug
cmake ..
Open BurstLinker.sln
Solution Explorer -> ALL_BUILD -> Build -> INSTALL -> Build
Run
cd Debug
BurstLinker.exe 1000 1.jpg 2.jpg 3.jpg
See out.gif
Thanks
square/gifencoder
waynejo/android-ndk-gif
lucent1090/MCCQ
luxiaoxun/KMeans-GMM-HMM
SimonBoorer/Quantize
dali-neuquant
FFmpeg/FFmpeg
progschj/ThreadPool
License
Copyright 2018 Bilibili
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
- 热点聚合:C++ 跨平台 BurstLinker 编码 GIF