• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

waynejo/android-ndk-gif: GIF library built with ndk and gradle in aar format for ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

waynejo/android-ndk-gif

开源软件地址(OpenSource Url):

https://github.com/waynejo/android-ndk-gif

开源编程语言(OpenSource Language):

C++ 86.9%

开源软件介绍(OpenSource Introduction):

Android NDK GIF Library

GIF library built with ndk and gradle in aar format for usage with android gradle build system.

1.0.1 Change Log

  • Added Gif Image Iterator for Image decoding.
  • Fixed a problem of residual image on transparent background.

Encoding Option

  • ENCODING_TYPE_SIMPLE_FAST
    • use low memory and encode fast. But low quality.
    • ENCODING_TYPE_SIMPLE_FAST
  • ENCODING_TYPE_FAST (Thanks to commitor "JBurkeKF")
    • encode fast. And better quality.
    • ENCODING_TYPE_SIMPLE_FAST
  • ENCODING_TYPE_NORMAL_LOW_MEMORY
    • use lower memory than ENCODING_TYPE_STABLE_HIGH_MEMORY. and image changing dynamic.
    • ENCODING_TYPE_NORMAL_LOW_MEMORY
  • ENCODING_TYPE_STABLE_HIGH_MEMORY
    • slowest and use high memory. But high quality and stable image sequence.
    • ENCODING_TYPE_STABLE_HIGH_MEMORY

How to use

Remote repository

...

repositories {
    maven { url 'https://repo1.maven.org/maven2' }
    ...
}

dependencies {
    implementation ('io.github.waynejo:androidndkgif:1.0.1')
}

Decoding using Iterator. (Less memory used)

GifDecoder gifDecoder = new GifDecoder();
final GifImageIterator iterator = gifDecoder.loadUsingIterator(destFile);
while (iterator.hasNext()) {
    GifImage next = iterator.next();
    if (null != next) {
        imageView.setImageBitmap(next.bitmap);
    }
}
iterator.close();

Decoding

GifDecoder gifDecoder = new GifDecoder();
boolean isSucceeded = gifDecoder.load(destFile);
if (isSucceeded) {
    for (int i = 0; i < gifDecoder.frameNum(); ++i) {
        Bitmap bitmap = gifDecoder.frame(i);
    }
}

Encoding

GifEncoder gifEncoder = new GifEncoder();
gifEncoder.init(width, height, filePath, GifEncoder.EncodingType.ENCODING_TYPE_NORMAL_LOW_MEMORY);

// Bitmap is MUST ARGB_8888.
gifEncoder.encodeFrame(bitmap1, delayMs);
gifEncoder.encodeFrame(bitmap2, delayMs);

gifEncoder.close();

Reference


Android Arsenal




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap