package com.dreamspace.uucampus.common;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import com.qiniu.android.storage.UpCompletionHandler;
import com.qiniu.android.storage.UploadManager;
import com.qiniu.android.storage.UploadOptions;
import java.io.ByteArrayOutputStream;
/**
* Created by Lx on 2015/10/24.
*/
public class UploadImage {
private static UploadManager uploadManager;
private static UploadManager getUploadManager(){
if(uploadManager == null){
uploadManager = new UploadManager();
}
return uploadManager;
}
/*上传图片到七牛云服务器
@param file上传图片文件
@param key 从后台获取的key
@param token 从后台获取的token
@param completionHandler 详情见七牛云文档
@param options 详情见七牛云文档
*/
// public static void upLoadImage(File file,String key,String token,UpCompletionHandler completionHandler,UploadOptions options){
// getUploadManager().put(file,key,token,completionHandler,options);
// }
public static void upLoadImage(String path,String key,String token,UpCompletionHandler completionHandler,UploadOptions options){
byte[] data = compressImage(path);
getUploadManager().put(data,key,token,completionHandler,options);
}
// public static void upLoadImage(byte[] data,String key,String token,UpCompletionHandler completionHandler,UploadOptions options){
// getUploadManager().put(data,key,token,completionHandler,options);
// }
//压缩图片体积
private static byte[] compressImage(String imagePath){
BitmapFactory.Options opts = new BitmapFactory.Options();
//设置为true获取图片的初始大小
opts.inJustDecodeBounds = true;
Bitmap image = BitmapFactory.decodeFile(imagePath,opts);
int imageHeight = opts.outHeight;
int imageWidth = opts.outWidth;
opts.inJustDecodeBounds = false;
//控制图片高宽中较低的一个在500像素左右
if(Math.min(imageHeight,imageWidth) > 500){
float ratio = Math.max(imageHeight,imageWidth)/500;
opts.inSampleSize = Math.round(ratio);
}
Bitmap finalImage = BitmapFactory.decodeFile(imagePath,opts);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//降低画质
finalImage.compress(Bitmap.CompressFormat.JPEG,70,baos);
byte[] bytes = baos.toByteArray();
return bytes;
}
}