BitmapBytesTranscoder.java revision ac28599e2b40e0dd6b97f6a91849585531264622
1package com.bumptech.glide.load.resource.transcode;
2
3import android.graphics.Bitmap;
4import com.bumptech.glide.Resource;
5import com.bumptech.glide.load.resource.bytes.BytesResource;
6
7import java.io.ByteArrayOutputStream;
8
9public class BitmapBytesTranscoder implements ResourceTranscoder<Bitmap, byte[]> {
10    private final Bitmap.CompressFormat compressFormat;
11    private final int quality;
12
13    public BitmapBytesTranscoder() {
14        this(Bitmap.CompressFormat.JPEG, 100);
15    }
16
17    public BitmapBytesTranscoder(Bitmap.CompressFormat compressFormat, int quality) {
18        this.compressFormat = compressFormat;
19        this.quality = quality;
20    }
21
22    @Override
23    public Resource<byte[]> transcode(Resource<Bitmap> toTranscode) {
24        ByteArrayOutputStream os = new ByteArrayOutputStream();
25        toTranscode.get().compress(compressFormat, quality, os);
26        toTranscode.recycle();
27        return new BytesResource(os.toByteArray());
28    }
29
30    @Override
31    public String getId() {
32        return "BitmapBytesTranscoder.com.bumptech.glide.load.data.transcode";
33    }
34}
35