当前位置: 首页>>代码示例>>Java>>正文


Java GifDecoder.getNextFrame方法代码示例

本文整理汇总了Java中com.bumptech.glide.gifdecoder.GifDecoder.getNextFrame方法的典型用法代码示例。如果您正苦于以下问题:Java GifDecoder.getNextFrame方法的具体用法?Java GifDecoder.getNextFrame怎么用?Java GifDecoder.getNextFrame使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.bumptech.glide.gifdecoder.GifDecoder的用法示例。


在下文中一共展示了GifDecoder.getNextFrame方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: encodeTransformedToStream

import com.bumptech.glide.gifdecoder.GifDecoder; //导入方法依赖的package包/类
private boolean encodeTransformedToStream(GifDrawable drawable, OutputStream os) {
  Transformation<Bitmap> transformation = drawable.getFrameTransformation();
  GifDecoder decoder = decodeHeaders(drawable.getBuffer());
  AnimatedGifEncoder encoder = factory.buildEncoder();
  if (!encoder.start(os)) {
    return false;
  }

  for (int i = 0; i < decoder.getFrameCount(); i++) {
    Bitmap currentFrame = decoder.getNextFrame();
    Resource<Bitmap> transformedResource =
        getTransformedFrame(currentFrame, transformation, drawable);
    try {
      if (!encoder.addFrame(transformedResource.get())) {
        return false;
      }
      int currentFrameIndex = decoder.getCurrentFrameIndex();
      int delay = decoder.getDelay(currentFrameIndex);
      encoder.setDelay(delay);

      decoder.advance();
    } finally {
      transformedResource.recycle();
    }
  }

  return encoder.finish();
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:29,代码来源:ReEncodingGifResourceEncoder.java

示例2: decode

import com.bumptech.glide.gifdecoder.GifDecoder; //导入方法依赖的package包/类
private GifDrawableResource decode(ByteBuffer byteBuffer, int width, int height,
    GifHeaderParser parser) {
  long startTime = LogTime.getLogTime();
  final GifHeader header = parser.parseHeader();
  if (header.getNumFrames() <= 0 || header.getStatus() != GifDecoder.STATUS_OK) {
    // If we couldn't decode the GIF, we will end up with a frame count of 0.
    return null;
  }


  int sampleSize = getSampleSize(header, width, height);
  GifDecoder gifDecoder = gifDecoderFactory.build(provider, header, byteBuffer, sampleSize);
  gifDecoder.advance();
  Bitmap firstFrame = gifDecoder.getNextFrame();
  if (firstFrame == null) {
    return null;
  }

  Transformation<Bitmap> unitTransformation = UnitTransformation.get();

  GifDrawable gifDrawable =
      new GifDrawable(context, gifDecoder, bitmapPool, unitTransformation, width, height,
          firstFrame);

  if (Log.isLoggable(TAG, Log.VERBOSE)) {
    Log.v(TAG, "Decoded GIF from stream in " + LogTime.getElapsedMillis(startTime));
  }

  return new GifDrawableResource(gifDrawable);
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:31,代码来源:ByteBufferGifDecoder.java

示例3: decode

import com.bumptech.glide.gifdecoder.GifDecoder; //导入方法依赖的package包/类
private GifDrawableResource decode(
    ByteBuffer byteBuffer, int width, int height, GifHeaderParser parser, Options options) {
  long startTime = LogTime.getLogTime();
  final GifHeader header = parser.parseHeader();
  if (header.getNumFrames() <= 0 || header.getStatus() != GifDecoder.STATUS_OK) {
    // If we couldn't decode the GIF, we will end up with a frame count of 0.
    return null;
  }

  Bitmap.Config config = options.get(GifOptions.DECODE_FORMAT) == DecodeFormat.PREFER_RGB_565
      ? Bitmap.Config.RGB_565 : Bitmap.Config.ARGB_8888;

  int sampleSize = getSampleSize(header, width, height);
  GifDecoder gifDecoder = gifDecoderFactory.build(provider, header, byteBuffer, sampleSize);
  gifDecoder.setDefaultBitmapConfig(config);
  gifDecoder.advance();
  Bitmap firstFrame = gifDecoder.getNextFrame();
  if (firstFrame == null) {
    return null;
  }

  Transformation<Bitmap> unitTransformation = UnitTransformation.get();

  GifDrawable gifDrawable =
      new GifDrawable(context, gifDecoder, unitTransformation, width, height, firstFrame);

  if (Log.isLoggable(TAG, Log.VERBOSE)) {
    Log.v(TAG, "Decoded GIF from stream in " + LogTime.getElapsedMillis(startTime));
  }

  return new GifDrawableResource(gifDrawable);
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:33,代码来源:ByteBufferGifDecoder.java

示例4: decode

import com.bumptech.glide.gifdecoder.GifDecoder; //导入方法依赖的package包/类
@Override
public Resource<Bitmap> decode(GifDecoder source, int width, int height, Options options) {
  Bitmap bitmap = source.getNextFrame();
  return BitmapResource.obtain(bitmap, bitmapPool);
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:6,代码来源:GifFrameResourceDecoder.java

示例5: decode

import com.bumptech.glide.gifdecoder.GifDecoder; //导入方法依赖的package包/类
@Override
public Resource<Bitmap> decode(GifDecoder source, int width, int height) throws IOException {
    return source.getNextFrame();
}
 
开发者ID:The-WebOps-Club,项目名称:saarang-iosched,代码行数:5,代码来源:GifFrameResourceDecoder.java

示例6: decodeFirstFrame

import com.bumptech.glide.gifdecoder.GifDecoder; //导入方法依赖的package包/类
private Bitmap decodeFirstFrame(GifDecoder decoder, GifHeader header, byte[] data) {
	decoder.setData(header, data);
	decoder.advance();
	return decoder.getNextFrame();
}
 
开发者ID:ericleong,项目名称:tumblr3d,代码行数:6,代码来源:GifResourceDecoder.java

示例7: decode

import com.bumptech.glide.gifdecoder.GifDecoder; //导入方法依赖的package包/类
@Override
public Resource<Bitmap> decode(GifDecoder source, int width, int height) {
	Bitmap bitmap = source.getNextFrame();
	return BitmapResource.obtain(bitmap, bitmapPool);
}
 
开发者ID:ericleong,项目名称:tumblr3d,代码行数:6,代码来源:GifFrameResourceDecoder.java


注:本文中的com.bumptech.glide.gifdecoder.GifDecoder.getNextFrame方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。