将BIG Picture对象转换为Bitmap对象Android。

时间:2013-10-29 15:22:54

标签: android image bitmap converter android-largeheap

我正在尝试从Web视图中获取图像,但是,当我调用“webView.capturePicture()”时,它会为我带来一个Picture Object。在大多数情况下,这足以让我使用以下代码将其转换为位图对象

Bitmap b = Bitmap.createBitmap(picture.getWidth(), picture.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
picture.draw(c);

但是在相同的情况下,将要创建的Bitmap比android在内存中支持的最大。

所以,我需要知道如何在文件中直接将Picture对象转换为位图对象(我猜这将是一个解决方案),而不需要在内存中有任何Bitmap实例。或者像那样。 主要是从图片对象创建一个位图,但我不能,因为它太大

PS:我不想使用'android:largeHeap =“true”'。

所以,如果有人有同样的想法,请告诉我。

由于

1 个答案:

答案 0 :(得分:0)

试试这个:

Picture p = webView.capturePicture();  
FileOutputStream fos;

try {
   fos = new FileOutputStream("/sdcard/picture");
   p.writeToStream(fos);
   fos.flush();
   fos.close();
} catch (FileNotFoundException e) {
   e.printStackTrace();
} catch (IOException e) {
   e.printStackTrace();
}  

警告:从api级别18弃用了Picture.writeToStream()。建议的替代方法是创建位图。更多信息here