package org.aisen.android.component.bitmaploader.core;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import org.aisen.android.common.utils.Logger;
import org.aisen.android.component.bitmaploader.BitmapLoader;
import java.io.File;
public class BitmapCompress implements IBitmapCompress {
@Override
public MyBitmap compress(byte[] bitmapBytes, File file, String url, ImageConfig config, int origW, int origH) throws Exception {
Bitmap bitmap = null;
try {
if (config.getMaxHeight() > 0 && config.getMaxWidth() > 0) {
bitmap = BitmapDecoder.decodeSampledBitmapFromByte(bitmapBytes, config.getMaxWidth(), config.getMaxHeight());
}
else if (config.getMaxHeight() > 0) {
bitmap = BitmapDecoder.decodeSampledBitmapFromByte(bitmapBytes, config.getMaxHeight(), config.getMaxHeight());
}
else if (config.getMaxWidth() > 0) {
bitmap = BitmapDecoder.decodeSampledBitmapFromByte(bitmapBytes, config.getMaxWidth(), config.getMaxWidth());
}
else {
bitmap = BitmapFactory.decodeByteArray(bitmapBytes, 0, bitmapBytes.length);
}
} catch (OutOfMemoryError e) {
e.printStackTrace();
}
Logger.d(BitmapLoader.TAG, String.format("原始尺寸是%dX%d, 压缩后尺寸是%dX%d", origW, origH, bitmap.getWidth(), bitmap.getHeight()));
return new MyBitmap(bitmap, url);
}
}