android图片处理

 /**
     * 保存图片到本地
     * @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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值