Nic*_* P. 10 android bitmap image-processing save surfaceview
我害怕已经有这个问题的不幸答案,但以防万一......我正在使用SurfaceView用位图(灯光和颜色修改)进行一些图像处理,我需要导入修改后的位图(即新的位图中的SurfaceView的内容,以便我可以将其保存为图像文件.
我一直在环顾四周,似乎可以从View.getDrawingCache()获取一个位图,但它不适用于SurfaceView.我得到的只是一个空位图.
这有什么解决方案吗?
谢谢
你能将SurfaceView绘制到由Bitmap支持的Canvas上吗?
// be sure to call the createBitmap that returns a mutable Bitmap
Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
yourSurfaceView.draw(c);
Run Code Online (Sandbox Code Playgroud)
对于 API 级别 >=24,请使用PixelCopy API。这是 ImageView 中的一个示例:
public void DrawBitmap(){
Bitmap surfaceBitmap = Bitmap.createBitmap(600, 600, Bitmap.Config.ARGB_8888);
PixelCopy.OnPixelCopyFinishedListener listener = copyResult -> {
// success/failure callback
};
PixelCopy.request(YourSurfaceView, surfaceBitmap,listener,getHandler());
// visualize the retrieved bitmap on your imageview
setImageBitmap(plotBitmap);
}
}
Run Code Online (Sandbox Code Playgroud)