/** * 保存图片到本地 * @param bitmap 图片 * @param name 图片名字 * @return 返回图片在本地地址 */ public static String saveBitmapPng(Bitmap bitmap, String name) { // String savePath; String savePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/zfzd/"; File filePic; // if (Environment.getExternalStorageState().equals( // Environment.MEDIA_MOUNTED)) { // savePath = path; // } else { // Log.d("xxx", "saveBitmap: 1return"); // return; // } try { filePic = new File(savePath + name + ".png"); if (!filePic.exists()) { filePic.getParentFile().mkdirs(); filePic.createNewFile(); } FileOutputStream fos = new FileOutputStream(filePic); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos); fos.flush(); fos.close(); } catch (IOException e) { e.printStackTrace(); Log.d("xxx", "saveBitmap: 2return"); return null; } return filePic.getAbsolutePath(); // Log.d("xxx", "saveBitmap: " + filePic.getAbsolutePath()); }
/** 根据本地地址得到bitmap图片 * @param filePath 图片的本地路径 * @return 返回显示的bitmap */ public static Bitmap getBitmap(String filePath) { Bitmap cardBitmap = null; FileInputStream fis = null; try { fis = new FileInputStream(filePath); cardBitmap = BitmapFactory.decodeStream(fis); return cardBitmap; } catch (FileNotFoundException e) { e.printStackTrace(); } return cardBitmap; }
//图片添加水印 public static Bitmap AddTimeWatermark(Bitmap mBitmap) { //获取原始图片与水印图片的宽与高 int mBitmapWidth = mBitmap.getWidth(); int mBitmapHeight = mBitmap.getHeight(); Bitmap mNewBitmap = Bitmap.createBitmap(mBitmapWidth, mBitmapHeight, Bitmap.Config.ARGB_8888); Canvas mCanvas = new Canvas(mNewBitmap); //向位图中开始画入MBitmap原始图片 mCanvas.drawBitmap(mBitmap, 0, 0, null); //添加文字 Paint mPaint = new Paint(); String mFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); //String mFormat = TingUtils.getTime()+"\n"+" 纬度:"+GpsService.latitude+" 经度:"+GpsService.longitude; mPaint.setColor(Color.WHITE); mPaint.setTextSize(15); //水印的位置坐标 mCanvas.drawText(mFormat, (mBitmapWidth * 1) / 10, (mBitmapHeight * 14) / 15, mPaint); mCanvas.save(Canvas.ALL_SAVE_FLAG); mCanvas.restore(); return mNewBitmap; }
//判定文件是否存在 public static boolean fileIsExists(String strFile) { try { File f = new File(strFile); if (!f.exists()) { return false; } } catch (Exception e) { return false; } return true; }
/** * 将bitmap转为Base64字符串 * * @param bitmap * @return */ public static String bitmapToString(Bitmap bitmap) { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 50, outputStream); byte[] bytes = outputStream.toByteArray(); //Base64算法加密,当字符串过长(一般超过76)时会自动在中间加一个换行符,字符串最后也会加一个换行符。 // 导致和其他模块对接时结果不一致。所以不能用默认Base64.DEFAULT,而是Base64.NO_WRAP不换行 return Base64.encodeToString(bytes, Base64.NO_WRAP); } /** * 将base64字符串转为bitmap * * @param base64String * @return */ public static Bitmap base64ToBitmap(String base64String) { byte[] bytes = Base64.decode(base64String, Base64.NO_WRAP); Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); return bitmap; }