从surfaceview保存图片
Posted
技术标签:
【中文标题】从surfaceview保存图片【英文标题】:save pictures from surfaceview 【发布时间】:2015-10-24 18:50:24 【问题描述】:可以吗?我想要一个服装相机(小于屏幕)我想要预览和拍照。 我尝试了很多代码,但都没有正常工作
How to capture image from custom CameraView in android?
【问题讨论】:
***.com/questions/27817577/… 【参考方案1】:是的,这是可能的,并且您链接中的代码在常见情况下是正确的。但是,如果您尝试在回调中将数据转换为特定格式,您还应该检查一件事:
public void onPictureTaken(byte[] arg0, Camera arg1)
您可以使用method查看Camera arg的图片格式:
public int getPictureFormat ()
这将为您设备中的相机返回 ImageFormat(如 JPEG、NV21、YUV 等)。您应该使用此值来正确格式化来自 onPictureTaken 的字节数据,因为 BitmapFactory.decodeByteArray(arg0, 0, arg0.length) 方法只能正确处理 JPEG 或 PNG 数据。
来自 Android 开发者BitmapFactory 文档:
在 KITKAT 之前应用附加限制:正在解码的图像 (无论是作为资源还是作为流)必须是 jpeg 或 png 格式。 仅支持大小相等的位图,其中 inSampleSize 设置为 1。 此外,重用位图的配置将覆盖 inPreferredConfig 的设置(如果已设置)。
另外我建议你使用TextureView而不是SurfaceView,因为在这种情况下你可以使用简单的方法并通过这个method从TextureView获取图片:
public Bitmap getBitmap ()
【讨论】:
以上是关于从surfaceview保存图片的主要内容,如果未能解决你的问题,请参考以下文章