画像圧縮、Base 64符号化後アップロードサーバ

1247 ワード

/*
*  Base64 
*/
public static String getPhotoBase64(PicRec pic) throws Exception {
Bitmap bit = getBitmap(pic);
String result = "";
ByteArrayOutputStream bos = null;
if (bit != null) {
bos = new ByteArrayOutputStream();
bit.compress(Bitmap.CompressFormat.JPEG, 90, bos);
byte[] bitmapByte = bos.toByteArray();
try {
if (bos != null) {
bos.flush();
bos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
result = Base64.encodeToString(bitmapByte, Base64.DEFAULT);
}
return result;
}
/*
* bitmap 
*/
public static Bitmap getBitmap(PicRec pic) throws Exception {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inDither = false;
options.inPurgeable = true;
options.inJustDecodeBounds = false;
options.inInputShareable = true;
options.inSampleSize = 5;
options.inTempStorage = new byte[12 * 1024];
File file;
FileInputStream fis = null;
Bitmap bitmap = null;
try {
file = new File(pic.getUrl());
fis = new FileInputStream(file);
bitmap = BitmapFactory.decodeStream(fis, null, options);
} catch (OutOfMemoryError e) {
throw e;
} catch (Exception e) {
throw e;
} finally {
if (fis != null)
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return bitmap;
}