1bcf4a0dae04a4ad14287eeb34069a97c96fe9bb1Sam Juddpackage com.bumptech.glide.load.resource.transcode; 295800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd 395800ddedeb8ed0390310ff80a68d3d0eeef00baSam Juddimport android.graphics.Bitmap; 4f7a6d65cf7c1a41908dd48e0dab68ee5b881387eSam Judd 5b7c7c2b2505f996dbda219faeb0d08dc1c9982d7Sam Juddimport com.bumptech.glide.load.engine.Resource; 6bcf4a0dae04a4ad14287eeb34069a97c96fe9bb1Sam Juddimport com.bumptech.glide.load.resource.bytes.BytesResource; 795800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd 895800ddedeb8ed0390310ff80a68d3d0eeef00baSam Juddimport java.io.ByteArrayOutputStream; 995800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd 105f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd/** 115f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * An {@link com.bumptech.glide.load.resource.transcode.ResourceTranscoder} that converts 125f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@link android.graphics.Bitmap}s into byte arrays using 135f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@link android.graphics.Bitmap#compress(android.graphics.Bitmap.CompressFormat, int, java.io.OutputStream)}. 145f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 1595800ddedeb8ed0390310ff80a68d3d0eeef00baSam Juddpublic class BitmapBytesTranscoder implements ResourceTranscoder<Bitmap, byte[]> { 1695800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd private final Bitmap.CompressFormat compressFormat; 1795800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd private final int quality; 1895800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd 1995800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd public BitmapBytesTranscoder() { 2095800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd this(Bitmap.CompressFormat.JPEG, 100); 2195800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd } 2295800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd 2395800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd public BitmapBytesTranscoder(Bitmap.CompressFormat compressFormat, int quality) { 2495800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd this.compressFormat = compressFormat; 2595800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd this.quality = quality; 2695800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd } 2795800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd 2895800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd @Override 2995800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd public Resource<byte[]> transcode(Resource<Bitmap> toTranscode) { 3095800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd ByteArrayOutputStream os = new ByteArrayOutputStream(); 3195800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd toTranscode.get().compress(compressFormat, quality, os); 3222fdf9c6fe4fb50f597fcb2e3e5fb7ab410828c7Sam Judd toTranscode.recycle(); 3395800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd return new BytesResource(os.toByteArray()); 3495800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd } 3595800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd 3695800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd @Override 3795800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd public String getId() { 38bd01b9765954ac2b99cb5dd76ade740455ad69e9Sam Judd return "BitmapBytesTranscoder.com.bumptech.glide.load.resource.transcode"; 3995800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd } 4095800ddedeb8ed0390310ff80a68d3d0eeef00baSam Judd} 41