package com.thefinestartist.wip;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.media.ExifInterface;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.lang.ref.SoftReference;
/**
* Created by TheFinestArtist
*/
public class PhotoUtil {
// public static final int IMAGE_MAX_WIDTH = 800;
//
// public static SoftReference<byte[]> convertToByte(String path) {
// if (path == null)
// return new SoftReference<>(new byte[0]);
//
// BitmapFactory.Options options = new BitmapFactory.Options();
// int inSampleSize = getInSampleSize(path, IMAGE_MAX_WIDTH * 2);
// options.inSampleSize = inSampleSize;
// Bitmap bitmap = BitmapFactory.decodeFile(path, options);
//
// if (bitmap == null) {
// inSampleSize = getInSampleSize(path, IMAGE_MAX_WIDTH * 2);
// options.inSampleSize = inSampleSize;
// bitmap = BitmapFactory.decodeFile(path, options);
// }
//
// if (bitmap == null)
// return new SoftReference<>(new byte[0]);
//
// // Scale the bitmap
// if (inSampleSize > 1) {
// float height;
// switch (getRotation(path)) {
// case ExifInterface.ORIENTATION_ROTATE_90:
// case ExifInterface.ORIENTATION_ROTATE_270:
// height = ((float) bitmap.getWidth()) * ((float) IMAGE_MAX_WIDTH) / ((float) bitmap.getHeight());
// bitmap = Bitmap.createScaledBitmap(bitmap, (int) height, IMAGE_MAX_WIDTH, true);
// break;
// case ExifInterface.ORIENTATION_NORMAL:
// case ExifInterface.ORIENTATION_ROTATE_180:
// default:
// height = ((float) bitmap.getHeight()) * ((float) IMAGE_MAX_WIDTH) / ((float) bitmap.getWidth());
// bitmap = Bitmap.createScaledBitmap(bitmap, IMAGE_MAX_WIDTH, (int) height, true);
// break;
// }
// }
//
// // Rotate the bitmap
// switch (getRotation(path)) {
// case ExifInterface.ORIENTATION_ROTATE_90:
// bitmap = rotateBitmap(bitmap, 90);
// break;
// case ExifInterface.ORIENTATION_ROTATE_270:
// bitmap = rotateBitmap(bitmap, 270);
// break;
// }
//
// byte[] bytes = null;
// try {
// ByteArrayOutputStream stream = new ByteArrayOutputStream();
// bitmap.compress(Bitmap.CompressFormat.JPEG, 80, stream);
// bytes = stream.toByteArray();
// stream.close();
// } catch (Exception e) {
// e.printStackTrace();
// }
//
// return new SoftReference<>(bytes);
// }
//
// public static Bitmap rotateBitmap(Bitmap bitmap, float angle) {
// Matrix matrix = new Matrix();
// matrix.postRotate(angle);
// return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
// }
//
//
// public static int getInSampleSize(String path, int maxWidth) {
// SoftReference<Bitmap> bitmap = getBitmap(path);
// int inSampleSize = 1;
// float currentWidth = 0;
// switch (getRotation(path)) {
// case ExifInterface.ORIENTATION_ROTATE_90:
// case ExifInterface.ORIENTATION_ROTATE_270:
// if (bitmap != null && bitmap.get() != null)
// currentWidth = bitmap.get().getHeight();
// break;
// case ExifInterface.ORIENTATION_NORMAL:
// case ExifInterface.ORIENTATION_ROTATE_180:
// default:
// if (bitmap != null && bitmap.get() != null)
// currentWidth = bitmap.get().getWidth();
// break;
// }
//
// currentWidth /= (float) maxWidth;
// while (currentWidth > 1) {
// inSampleSize *= 2;
// currentWidth /= 2;
// }
//
// return inSampleSize;
// }
//
// public static SoftReference<Bitmap> getBitmap(String path) {
// SoftReference<Bitmap> bitmap = null;
//
// try {
// bitmap = new SoftReference<>(BitmapFactory.decodeStream(new FileInputStream(new File(path))));
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// }
//
// return bitmap;
// }
//
// public static int getRotation(String path) {
// int rotate = ExifInterface.ORIENTATION_NORMAL;
// try {
// File imageFile = new File(path);
// ExifInterface exif = new ExifInterface(imageFile.getAbsolutePath());
// rotate = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
// } catch (Exception e) {
// e.printStackTrace();
// }
// return rotate;
// }
}