123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- package epson.print.imgsel;
- import android.graphics.Bitmap;
- import android.graphics.Matrix;
- import android.media.ExifInterface;
- import android.os.AsyncTask;
- import android.util.Log;
- import epson.common.ImageUtil;
- import epson.print.EPImage;
- import java.io.File;
- import java.io.IOException;
- import java.lang.ref.WeakReference;
- public class ImageResizer {
- private static ImageResizer sImageResizer;
- /* access modifiers changed from: private */
- public BitmapCache mBitmapCache = new BitmapCache();
- /* access modifiers changed from: private */
- public volatile boolean mIsTargetActivityForeground;
- private int mReqSize;
- public interface BitmapDrawer {
- void setBitmap(Bitmap bitmap);
- }
- public static synchronized ImageResizer getInstance(int i, File file) {
- ImageResizer imageResizer;
- synchronized (ImageResizer.class) {
- if (sImageResizer == null) {
- sImageResizer = new ImageResizer(i, file);
- }
- imageResizer = sImageResizer;
- }
- return imageResizer;
- }
- private ImageResizer(int i, File file) {
- this.mReqSize = i;
- this.mBitmapCache.initialize(file);
- }
- public void setActivityForeground(boolean z) {
- this.mIsTargetActivityForeground = z;
- if (!z) {
- this.mBitmapCache.saveJournal();
- }
- }
- public ResizeTask load(String str, BitmapDrawer bitmapDrawer) {
- File file = new File(str);
- Bitmap bitmap = this.mBitmapCache.getBitmap(file);
- if (bitmap != null) {
- updateImageViewBitmap(bitmap, bitmapDrawer);
- return null;
- }
- ResizeTask resizeTask = new ResizeTask(file, bitmapDrawer, this.mReqSize);
- resizeTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, new Void[0]);
- return resizeTask;
- }
- private void updateImageViewBitmap(Bitmap bitmap, BitmapDrawer bitmapDrawer) {
- if (bitmap != null && bitmapDrawer != null) {
- bitmapDrawer.setBitmap(bitmap);
- }
- }
- public class ResizeTask extends AsyncTask<Void, Void, Bitmap> {
- private WeakReference<BitmapDrawer> mImageImageDrawerReference;
- private File mOrgFile;
- private int mReqSize;
- public ResizeTask(File file, BitmapDrawer bitmapDrawer, int i) {
- this.mOrgFile = file;
- this.mImageImageDrawerReference = new WeakReference<>(bitmapDrawer);
- this.mReqSize = i;
- }
- protected Bitmap doInBackground(Void... voidArr) {
- File file;
- Bitmap bitmap;
- if (isCancelled() || !ImageResizer.this.mIsTargetActivityForeground || (file = this.mOrgFile) == null) {
- return null;
- }
- try {
- bitmap = ImageUtil.loadBitmap(file.toString(), this.mReqSize, this.mReqSize, true, true);
- } catch (OutOfMemoryError e) {
- Log.w("ImageResizer", "doInBackground:" + e.toString());
- bitmap = null;
- }
- if (isCancelled()) {
- return null;
- }
- if (bitmap == null) {
- return bitmap;
- }
- Bitmap rotateBitmap = rotateBitmap(this.mOrgFile, bitmap);
- ImageResizer.this.mBitmapCache.addBitmap(this.mOrgFile, rotateBitmap);
- return rotateBitmap;
- }
- private void testSleep(int i) {
- try {
- Thread.sleep((long) i);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- private Bitmap rotateBitmap(File file, Bitmap bitmap) {
- int exifRotation = getExifRotation(file);
- if (exifRotation == 0) {
- return bitmap;
- }
- Matrix matrix = new Matrix();
- matrix.setRotate((float) exifRotation);
- return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
- }
- private int getExifRotation(File file) {
- try {
- int attributeInt = new ExifInterface(file.toString()).getAttributeInt(android.support.media.ExifInterface.TAG_ORIENTATION, 1);
- if (attributeInt == 3) {
- return EPImage.EPS_ROTATE_180;
- }
- if (attributeInt == 6) {
- return 90;
- }
- if (attributeInt != 8) {
- return 0;
- }
- return EPImage.EPS_ROTATE_270;
- } catch (IOException unused) {
- return 0;
- }
- }
- protected void onPostExecute(Bitmap bitmap) {
- BitmapDrawer bitmapDrawer = (BitmapDrawer) this.mImageImageDrawerReference.get();
- if (bitmap != null && bitmapDrawer != null) {
- bitmapDrawer.setBitmap(bitmap);
- }
- }
- }
- }
|