Reputation: 9351
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);
}
});
Upvotes: 9
Views: 13167
Reputation: 2508
private static Bitmap pictureDrawable2Bitmap(Picture picture) {
final int width = picture.getwidth();
final int height = picture.getHeight();
Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawPicture(picture, new Rect(0, 0, width, height));
return bitmap;
}
Upvotes: 0
Reputation: 12656
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);
}
});
Upvotes: 18