图片压缩,Base64编码后上传服务器

2019-04-15 13:55发布

/* * 将图片编码成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; }