FileDescriptorBitmapDecoder.java revision ac28599e2b40e0dd6b97f6a91849585531264622
1package com.bumptech.glide.load.resource.bitmap; 2 3import android.graphics.Bitmap; 4import android.os.ParcelFileDescriptor; 5import com.bumptech.glide.Resource; 6import com.bumptech.glide.load.ResourceDecoder; 7import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; 8import com.bumptech.glide.load.DecodeFormat; 9 10import java.io.IOException; 11 12public class FileDescriptorBitmapDecoder implements ResourceDecoder<ParcelFileDescriptor, Bitmap> { 13 private final VideoBitmapDecoder bitmapDecoder; 14 private final BitmapPool bitmapPool; 15 private DecodeFormat decodeFormat; 16 17 public FileDescriptorBitmapDecoder(BitmapPool bitmapPool) { 18 this(new VideoBitmapDecoder(), bitmapPool, DecodeFormat.PREFER_RGB_565); 19 } 20 21 public FileDescriptorBitmapDecoder(VideoBitmapDecoder bitmapDecoder, BitmapPool bitmapPool, 22 DecodeFormat decodeFormat) { 23 this.bitmapDecoder = bitmapDecoder; 24 this.bitmapPool = bitmapPool; 25 this.decodeFormat = decodeFormat; 26 } 27 28 @Override 29 public Resource<Bitmap> decode(ParcelFileDescriptor source, int width, int height) throws IOException { 30 Bitmap bitmap = bitmapDecoder.decode(source, bitmapPool, width, height, decodeFormat); 31 if (bitmap == null) { 32 return null; 33 } else { 34 return new BitmapResource(bitmap, bitmapPool); 35 } 36 } 37 38 @Override 39 public String getId() { 40 return "FileDescriptorBitmapDecoder.com.bumptech.glide.load.data.bitmap"; 41 } 42} 43