Idea from: square/gifencoder
BurstLinker is a simple C++ GIF encode library. You can easily use it on Android, Windows, Linux or other platforms.
Gradle:
implementation 'com.bilibili:burst-linker:latest-version'
Android Studio 3.0.1
NDK r16
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();
}
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
-
- Mac
brew install freeimage cmake
- Debian
sudo apt-get install libfreeimage-dev cmake
- RedHat
sudo yum install freeimage-devel cmake
- ArchLinux
sudo pacman -S freeimage cmake
- Mac
-
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
-
Install Microsoft 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
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.