Merge two bitmaps in android

前端 未结 4 2033
既然无缘
既然无缘 2020-12-05 08:23

I want to merge two bitmaps, here is my code

// Camera arg conversion to Bitmap
                    Bitmap cameraBitmap = BitmapFactory.decodeByteArray(arg0,         


        
4条回答
  •  隐瞒了意图╮
    2020-12-05 09:07

    Resize watermark image same size as original image

    Uri bmpUri1 = getLocalBitmapUri(ivImage);
    Uri bmpUri2 = getLocalBitmapUri(watermark_imageview);
    
    try {
        bm1 = BitmapFactory.decodeStream(
                getContentResolver().openInputStream(bmpUri1));
        bm2 = BitmapFactory.decodeStream(
                getContentResolver().openInputStream(bmpUri2));
    
        Bitmap bmOverlay = Bitmap.createBitmap(bm1.getWidth(), bm1.getHeight(), bm1.getConfig());
        bm2 = Bitmap.createScaledBitmap(bm2, bm1.getWidth(), bm1.getHeight(),
                true);
    
        Canvas canvas = new Canvas(bmOverlay);
        canvas.drawBitmap(bm1, 0,0, null);
        canvas.drawBitmap(bm2, 0,0, null);
        watermarkimage.setVisibility(View.GONE);
        im =new ImageView(ImageClick.this);
        im.setImageBitmap(bmOverlay);
        bmpUri = getLocalBitmapUri(im);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
    private Uri getLocalBitmapUri(ImageView imageView) {
        Drawable drawable = imageView.getDrawable();
        Bitmap bmp = null;
        if (drawable instanceof BitmapDrawable){
            bmp = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
        } else {
            return null;
        }
        // Store image to default external storage directory
        Uri bmpUri = null;
        try {
            File file =  new File(Environment.getExternalStoragePublicDirectory(
                    Environment.DIRECTORY_DOWNLOADS), "share_image_" + System.currentTimeMillis() + ".png");
            file.getParentFile().mkdirs();
            FileOutputStream out = new FileOutputStream(file);
            bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
            out.close();
            bmpUri = Uri.fromFile(file);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return bmpUri;
    }
    

提交回复
热议问题