1package com.bumptech.glide.load.resource.bitmap; 2 3import android.graphics.Bitmap; 4import com.bumptech.glide.load.engine.Resource; 5import com.bumptech.glide.load.ResourceEncoder; 6 7import java.io.OutputStream; 8 9public class BitmapEncoder implements ResourceEncoder<Bitmap> { 10 private Bitmap.CompressFormat compressFormat; 11 private int quality; 12 13 public BitmapEncoder() { 14 this(null, 70); 15 } 16 17 public BitmapEncoder(Bitmap.CompressFormat compressFormat, int quality) { 18 this.compressFormat = compressFormat; 19 this.quality = quality; 20 } 21 22 @Override 23 public boolean encode(Resource<Bitmap> resource, OutputStream os) { 24 final Bitmap bitmap = resource.get(); 25 bitmap.compress(getFormat(bitmap), quality, os); 26 return true; 27 } 28 29 @Override 30 public String getId() { 31 return "BitmapEncoder.com.bumptech.glide.load.resource.bitmap"; 32 } 33 34 private Bitmap.CompressFormat getFormat(Bitmap bitmap) { 35 if (compressFormat != null) { 36 return compressFormat; 37 } else if (bitmap.hasAlpha()) { 38 return Bitmap.CompressFormat.PNG; 39 } else { 40 return Bitmap.CompressFormat.JPEG; 41 } 42 } 43 44} 45