【问题标题】:Skewing the SurfaceView of the Camera Preview倾斜相机预览的 SurfaceView
【发布时间】:2015-02-27 15:13:29
【问题描述】:

这里有一些背景信息可以帮助解释这种情况。我的任务是构建一个白板应用程序。此应用程序需要设备的摄像头在实时流中显示白板。该设备可以与白板成一定角度放置,但仍显示“平面”图像。就像以某个角度拍摄照片然后将图像倾斜为平坦的,就好像您直接在它前面拍摄照片一样。

我的问题是是否可以倾斜相机预览的 SurfaceView 以便我可以录制倾斜图像的视频而不是图像本身?

【问题讨论】:

  • 您必须以某种方式处理来自相机的视频流,可能使用 opengl。

标签: android android-camera surfaceview skew


【解决方案1】:

如果将其发送到 TextureView,而不是 SurfaceView,则可以应用转换矩阵。您可以在 Grafika 的 PlayMovieActivity 中看到一个简单的示例,其中 adjustAspectRatio() 应用矩阵来设置视频的纵横比。

如果您不熟悉矩阵变换,请查看the answers here

这假设您可以控制播放器,并且可以随视频一起向其发送“倾斜这么多”的值。要修改实际视频,您需要将转换应用于视频帧,因为它们正在前往编码器的途中。一种方法是将预览发送到 SurfaceTexture,使用适当的转换在 GLES 四边形上绘制,然后使用 MediaCodec 编码器捕获 GLES 渲染。

直接捕捉它并在播放时倾斜它会更容易。

【讨论】:

    猜你喜欢
    • 2016-08-12
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多