package com.k1.doctor.media; import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.UUID; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.os.Environment; import android.graphics.BitmapFactory; public class PhotoshopManager { //计算缩放比例 public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) { int height = options.outHeight; int width = options.outWidth; int inSampleSize = 1; if (height > reqHeight || width > reqWidth) { final int heightRatio = Math.round((float) height / (float) reqHeight); final int widthRatio = Math.round((float) width / (float) reqWidth); inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio; } return inSampleSize; } //得到压缩后图片的byte[] public static byte[] getSmallBitmap(String filePath) { final BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(filePath, options); // Calculate inSampleSize options.inSampleSize = calculateInSampleSize(options, 480, 800); // Decode bitmap with inSampleSize set options.inJustDecodeBounds = false; Bitmap bit = BitmapFactory.decodeFile(filePath, options); String name = UUID.randomUUID().toString(); return bitmapToByte(bit, name); } //bitmap---->byte[] public static byte[] bitmapToByte(Bitmap bmp, String name) { ByteArrayOutputStream output = new ByteArrayOutputStream();// 初始化一个流对象 bmp.compress(CompressFormat.JPEG, 100, output);// 把bitmap100%高质量压缩 到 // output对象里 bmp.recycle();// 自由选择是否进行回收 byte[] result = output.toByteArray();// 转换成功了 try { output.close(); } catch (Exception e) { e.printStackTrace(); } return result; } }
//放大 private static Bitmap big(Bitmap bitmap) { Matrix matrix = new Matrix(); matrix.postScale(1.5f,1.5f); //长和宽放大缩小的比例 Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true); return resizeBmp; } //缩小 private static Bitmap small(Bitmap bitmap) { Matrix matrix = new Matrix(); matrix.postScale(0.8f,0.8f); //长和宽放大缩小的比例 Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true); return resizeBmp; }