本文整理汇总了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();
}
示例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);
}
示例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);
}
示例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);
}
示例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();
}
示例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();
}
示例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);
}