All Projects โ†’ bilibili โ†’ Burstlinker

bilibili / Burstlinker

Licence: apache-2.0
๐Ÿš€ A simple GIF encoder for Android.

Programming Languages

cplusplus
227 projects

Labels

Projects that are alternatives of or similar to Burstlinker

Imgursniper
๐Ÿ“ท A quick and easy Image, Screenshot and Screen recording sharing tool
Stars: โœญ 69 (-37.84%)
Mutual labels:  gif
Flowabot
Modular Discord bot with fun features including twitch commands and advanced osu! commands. ๐ŸŒท
Stars: โœญ 86 (-22.52%)
Mutual labels:  gif
Gifserver
A server for transcoding gif to video on the fly
Stars: โœญ 100 (-9.91%)
Mutual labels:  gif
Toolgif
๐Ÿ’ญ The only GIF tooltip plugin you need
Stars: โœญ 75 (-32.43%)
Mutual labels:  gif
Swiftgif
[UNMAINTAINED] ๐ŸŒ  A small UIImage extension with gif support
Stars: โœญ 1,255 (+1030.63%)
Mutual labels:  gif
Livelygifs
An app show your Live Photo and export as GIF.
Stars: โœญ 92 (-17.12%)
Mutual labels:  gif
Gif Endec
PHP GIF encoder and decoder
Stars: โœญ 63 (-43.24%)
Mutual labels:  gif
Gif Frames
๐Ÿ–ผ Extract frames from an animated GIF with pure JS
Stars: โœญ 100 (-9.91%)
Mutual labels:  gif
Gifcompressor
An Android tool to compresses your GIFs into lightweight MP4 video using fast, hardware-accelerated encoders. Supports cropping, rotation, GIF concatenation and much more.
Stars: โœญ 85 (-23.42%)
Mutual labels:  gif
Vdx
๐ŸŽž An intuitive CLI for processing video, powered by FFmpeg
Stars: โœญ 1,356 (+1121.62%)
Mutual labels:  gif
Abmediaview
Media view which subclasses UIImageView, and can display & load images, videos, GIFs, and audio and from the web, and has functionality to minimize from fullscreen, as well as show GIF previews for videos.
Stars: โœญ 79 (-28.83%)
Mutual labels:  gif
Notgif
Play & Share your GIFs in Photos
Stars: โœญ 84 (-24.32%)
Mutual labels:  gif
Kgif
Tool for creating gif file from capturing active window.
Stars: โœญ 94 (-15.32%)
Mutual labels:  gif
Emacs Gif Screencast
[MOVED TO GITLAB] One-frame-per-action GIF recording for optimal quality/size ratio
Stars: โœญ 74 (-33.33%)
Mutual labels:  gif
Ffmpeg Gif Script For Bash
Turn your videos into palette-mapped gifs with this easy script
Stars: โœญ 100 (-9.91%)
Mutual labels:  gif
Pgn2gif
A small tool that generates gif of a chess game
Stars: โœญ 65 (-41.44%)
Mutual labels:  gif
Node Sorry
็”Ÿๆˆ่กจๆƒ…gif
Stars: โœญ 90 (-18.92%)
Mutual labels:  gif
Fancy Flutter Alert Dialog
flutter package to show well designed alert dialog
Stars: โœญ 103 (-7.21%)
Mutual labels:  gif
Gifdec
small C GIF decoder
Stars: โœญ 100 (-9.91%)
Mutual labels:  gif
Shellpic
ASCII-art is so 2013
Stars: โœญ 94 (-15.32%)
Mutual labels:  gif

BurstLinker

Download

Idea from: square/gifencoder

BurstLinker is a simple C++ GIF encode library.

Download

Android

Gradle:

implementation 'com.bilibili:burst-linker:latest-version'

Build Environment

Android Studio 3.4.1

NDK r20

Basic usage

int delayMs = 1000;
String filePath = getCacheDir() + 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 feature.

  1. Choose the Git branch "/feature/render-script".
  2. Sync Project with Gradle Files, It will generate the required file named "ScriptC_*.cpp".
  3. Uncomment the line 64 of the "/lib/CMakeLists.txt".
  4. Try this function.

Linux & Mac

  1. Install CMake

    • Mac brew install cmake
    • ArchLinux sudo pacman -S cmake
  2. Build

    • cd /BurstLinker
    • mkdir cmake-build-debug; cd cmake-build-debug
    • cmake ..
    • make BurstLinker
  3. Run

    • ./BurstLinker 1000 1.jpg 2.jpg 3.jpg
    • See the "out.gif"

Windows

  1. Install Microsoft Visual Studio & CMake

  2. Build

    • cd /BurstLinker
    • mkdir cmake-build-debug; cd cmake-build-debug
    • cmake ..
    • Open the "BurstLinker.sln"
    • Solution Explorer -> BurstLinker -> Build
  3. Run

    • cd Debug
    • BurstLinker.exe 1000 1.jpg 2.jpg 3.jpg
    • See the "out.gif"

Samples

Different quantizers & ditherers

  • Original

original

  • Uniform + No

uniform

  • MedianCut + No

media-cut

  • KMeans + No

k-means

  • Random + No

random

  • Octree + No

octree

  • NeuQuant - 10 + No

neu-quant-10

  • NeuQuant - 1 + No

neu-quant-1

  • Octree + M2

uniform

  • Octree + Bayer

octree-bayer

  • Octree + FloydSteinberg

octree-floyd-steinberg

Encodes images with transparent channels

  • Original

bilibili

  • Octree + No + Default

    Display all Alpha channels greater than 0. (ARGB.a != 0)

bilibili-octree

  • Octree + No + Ignored translucency

    Display only the Alpha channels equal to 255. (ARGB.a == 255)

bilibili-octree

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.
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].