获取 Canvas 的一部分作为位图
getting a part of a Canvas as a Bitmap
我正在尝试获取 SurfaceView
的 canvas 的一部分并将其保存为 Bitmap
。
我看到的每个答案都是创建一个新的 Canvas
并将其传递给您的 Bitmap
给构造函数。
因为我正在使用 SurfaceView
,我正在使用 SurfaceHodler
和 mSurfaceHolder.lockCanvas();
来获取我的 canvas,因此我无法创建新的 Canvas
和我的 Bitmap
.
如何在不创建新的 canvas 的情况下将 canvas 的一部分添加到 Bitmap
?
一个Canvas是渲染界面。您无法获得其中的一部分或全部,因为它只是界面。像素被绘制到位图或表面,因此如果您需要它们,您要么必须读回它们,要么重新绘制它们。
无法从 Surface 检索像素 -- 它是生产者-消费者对的生产者端。最简单的方法是用位图支持的新 Canvas 重复绘图命令。
另见 。
我正在尝试获取 SurfaceView
的 canvas 的一部分并将其保存为 Bitmap
。
我看到的每个答案都是创建一个新的 Canvas
并将其传递给您的 Bitmap
给构造函数。
因为我正在使用 SurfaceView
,我正在使用 SurfaceHodler
和 mSurfaceHolder.lockCanvas();
来获取我的 canvas,因此我无法创建新的 Canvas
和我的 Bitmap
.
如何在不创建新的 canvas 的情况下将 canvas 的一部分添加到 Bitmap
?
一个Canvas是渲染界面。您无法获得其中的一部分或全部,因为它只是界面。像素被绘制到位图或表面,因此如果您需要它们,您要么必须读回它们,要么重新绘制它们。
无法从 Surface 检索像素 -- 它是生产者-消费者对的生产者端。最简单的方法是用位图支持的新 Canvas 重复绘图命令。
另见