Android从view得到bitmap及bitmap叠加和保存
16lz
2021-01-24
从view得到bitmap:
private Bitmap getBitmapFromView(View view) {Bitmap bitmap = null;try {int width = view.getWidth();int height = view.getHeight();if(width != 0 && height != 0){bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(bitmap);view.layout(0, 0, width, height);view.draw(canvas);}} catch (Exception e) {bitmap = null;e.getStackTrace();}return bitmap;}
private Bitmap addWatermark(Bitmap src, Bitmap watermark) {if (src == null || watermark == null) {Log.d(TAG, "src is null");return src;}int sWid = src.getWidth();int sHei = src.getHeight();int wWid = watermark.getWidth();int wHei = watermark.getHeight();if (sWid == 0 || sHei == 0) {return null;}if (sWid < wWid || sHei < wHei) {return src;}Bitmap bitmap = Bitmap.createBitmap(sWid, sHei, Config.ARGB_8888);try {Canvas cv = new Canvas(bitmap);cv.drawBitmap(src, 0, 0, null);cv.drawBitmap(watermark, sWid - wWid - 5, sHei - wHei - 5, null);cv.save(Canvas.ALL_SAVE_FLAG);cv.restore();} catch (Exception e) {bitmap = null;e.getStackTrace();}return bitmap;}
Bitmap保存:
public static boolean saveBitmap(Bitmap bitmap, String fileName) {File file = new File(PATH);if (!file.exists()) {file.mkdir();}File imageFile = new File(file, fileName);try {imageFile.createNewFile();FileOutputStream fos = new FileOutputStream(imageFile);bitmap.compress(CompressFormat.JPEG, 50, fos);fos.flush();fos.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return true;}
更多相关文章
- android拍照压缩及添加水印3
- Android(安卓)拍照添加时间水印
- 实现Android水印效果
- Android实现水印效果
- Android APP 自定义水印(kotlin)
- [Android] 触屏setOnTouchListener实现图片缩放、移动、绘制和添
- android中给图片打水印
- android bitmap图片压缩,打时间水印。
- android 中的实现加水印