/** * 新图片保存路径 * @param oldPicPath * @param isCover * @return */ private String createCompressPic(String oldPicPath,boolean isCover) { if(TextUtils.isEmpty(oldPicPath)){ return ""; } if(!obtainPicSize(oldPicPath)){ return ""; } Bitmap bitmap = getCompressBitmap(oldPicPath); String picPath =""; File file; if(isCover){ // 覆盖原图 picPath = oldPicPath; }else { picPath = oldPicPath.substring(0,oldPicPath.lastIndexOf(".")) +"_dis.jpg"; } file = new File(picPath); if(file.exists()){ file.delete(); } try { FileOutputStream fos = new FileOutputStream(file); bitmap.compress(Bitmap.CompressFormat.JPEG,100,fos); fos.flush(); fos.close(); } catch (Exception e) { e.printStackTrace(); } return file.getAbsolutePath(); }
/*** * 动态获取图像的宽高 * @param recogPicPath 识别图像路径 */ private boolean obtainPicSize(String recogPicPath) { try { File file = new File(recogPicPath); BitmapFactory.Options options = null; if (!file.exists()) { Toast.makeText(context, "读取文件不存在", Toast.LENGTH_LONG).show(); return false; } options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(recogPicPath, options); if (options == null) { return false; } curPicWidth = options.outWidth; curPicHeight = options.outHeight; } catch (Exception e) { e.printStackTrace(); } return true; }
/** * 生成bitmap数据 * @param path * @return */ public Bitmap getCompressBitmap(String path){ Bitmap bitmap = null; bitmap = BitmapFactory.decodeFile(path); if(bitmap != null){ bitmap = Bitmap.createBitmap(bitmap, 0, 0, curPicWidth, curPicHeight); } return bitmap; }