Android:使用 SurfaceView 内容创建位图
我担心这个问题已经有了不幸的答案,但以防万一...我正在使用 SurfaceView 来对位图进行一些图像处理(灯光和颜色修改),并且我需要导入修改后的位图(即SurfaceView 的内容)在一个新的位图中,以便我可以将其保存为图像文件。
我环顾四周,似乎可以从 View.getDrawingCache() 获取位图,但它不适用于 SurfaceView。我得到的只是一个空的位图。
有什么办法解决这个问题吗?
谢谢
I'm afraid to already have the unfortunate answer to this question but just in case... I'm using a SurfaceView to do some image processing with bitmaps (lights and colors modifications) and I would need to import the modified bitmap (i.e. the content of the SurfaceView) in a new bitmap so that I can save it as an image file.
I've been looking around and it seems that it's possible to get a bitmap from View.getDrawingCache() but it doesn't work with SurfaceView. All I get is an empty bitmap.
Is there any solution to this?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
对于 API 级别 >=24,请使用 PixelCopy API。
这是 ImageView 中的一个示例:
For API levels >=24, use the PixelCopy API.
Here's an example inside an ImageView:
您可以将 SurfaceView 绘制到由位图支持的 Canvas 上吗?
Can you draw your SurfaceView onto a Canvas that's backed by a Bitmap?
没有简单的方法来捕获SurfaceView的帧,因此您可以考虑使用TextureView而不是SurfaceView:可以检索Bitmap使用
textureView.getBitmap()
方法。There is no simple way to capture frames of SurfaceView, so you can consider using TextureView instead of SurfaceView: the Bitmap can be retrieved using
textureView.getBitmap()
method.只需获取 SurfaceView 的源代码并修改它即可访问底层位图。
Just grab the source code for SurfaceView and modify it to give you access to the underlying bitmap.