Skip to content
This repository was archived by the owner on Aug 28, 2025. It is now read-only.

Latest commit

 

History

History
78 lines (60 loc) · 1.79 KB

File metadata and controls

78 lines (60 loc) · 1.79 KB

GifEncoder

GifEncoder 基于 MediaMetadataRetriever,使用串表压缩算法,实现视频、多张图片转GIF。

jitpack

How to import?

Step 1. Add the JitPack repository to your build file

Gradle

Add it in your root build.gradle at the end of repositories:

	allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}

Maven

	<repositories>
		<repository>
		    <id>jitpack.io</id>
		    <url>https://jitpack.io</url>
		</repository>
	</repositories>

Step 2. Add the dependency

Gradle

	dependencies {
	    implementation 'com.github.YangDai2003:GifEncoderLib:latest_version'
	}

Maven

	<dependency>
	    <groupId>com.github.YangDai2003</groupId>
	    <artifactId>GifEncoderLib</artifactId>
	    <version>Tag</version>
	</dependency>

How to use?

JAVA

    private void convertVideoToGif(String inputVideoPath, String outputGifPath) {
        ExecutorService executor = Executors.newSingleThreadExecutor();
        executor.execute(() -> {
            BitmapRetriever extractor = new BitmapRetriever(inputVideoPath);
            extractor.setFps(10);
            extractor.setOutputBitmapSize(extractor.getVideoWidth() / 2, extractor.getVideoHeight() / 2);
            List<Bitmap> bitmaps = extractor.generateBitmaps();

            GifEncoder encoder = new GifEncoder();
            encoder.init(bitmaps.get(0));
            encoder.start(outputGifPath);
            for (int i = 1; i < bitmaps.size(); i++) {
                encoder.addFrame(bitmaps.get(i));
            }
            encoder.finish();
            runOnUiThread(() -> Toast.makeText(this, "finish", Toast.LENGTH_SHORT).show());
        });
    }