2016-06-11 43 views
1

我試圖獲取SurfaceView畫布的一部分並將其保存爲Bitmap
我看到的每個答案都是創建一個新的Canvas並將其傳遞給構造函數Bitmap將畫布的一部分作爲位圖獲取

因爲我使用SurfaceView,我現在用的是SurfaceHodlermSurfaceHolder.lockCanvas();因此,我不能創造新的CanvasBitmap讓我的畫布。

如何在不製作新畫布的情況下將畫布的一部分變爲Bitmap

回答

1

畫布是一個渲染界面。你無法得到它的一部分或全部,因爲它只是界面。像素被繪製到位圖或表面,所以如果你想要它們,你必須讀回或者再次繪製它們。

無法從Surface中檢索像素 - 它是生產者 - 消費者對的生產者端。最簡單的方法是用一個由Bitmap支持的新Canvas重複繪製命令。請參閱this answer