how to convert a Picture object into a Bitmap object, Android

12,287

Add this:

//Convert Picture to Bitmap
private static Bitmap pictureDrawable2Bitmap(Picture picture) {
    PictureDrawable pd = new PictureDrawable(picture);
    Bitmap bitmap = Bitmap.createBitmap(pd.getIntrinsicWidth(), pd.getIntrinsicHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    canvas.drawPicture(pd.getPicture());
    return bitmap;
}

Reference: Android - How to convert picture from webview.capturePicture() to byte[] and back to bitmap

Then modify your code as follows:

showBitmap.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Picture picture = wv.capturePicture();
        Bitmap bm = pictureDrawable2Bitmap(picture); 
        imageOne.setImageBitmap(bm);
    }
});
Share:
12,287
Kevik
Author by

Kevik

Updated on July 24, 2022

Comments

  • Kevik
    Kevik almost 2 years

    how can I convert a Picture into a Bitmap, what I tried in the code is not working. Any Ideas on how to do this? I wanted to get the image in the Picture object and put that image into the ImageView named imageOne.

        showBitmap.setOnClickListener(new View.OnClickListener() {
            @Override
                public void onClick(View v) {
    
                Picture picture = wv.capturePicture();
    
               Bitmap bm = Bitmap.createBitmap(picture.getWidth(), 
                       picture.getHeight(), 
                       Bitmap.Config.RGB_565); 
       Canvas c = new Canvas(bm); 
       picture.draw(c);
    
       imageOne.setImageBitmap(bm);
    
                }
            });
    
  • beginner
    beginner almost 3 years
    Thanks it works, But could you explain why Canvas canvas = new Canvas(bitmap);canvas.drawPicture(pd.getPicture()); needed. when you already have bitmap created?