在https://blog.qt.io/blog/2015/03/20/introducing-video-filters-in-qt-multimedia的博客之后,我设法让我的C ++过滤器与QML定义的相机一起使用。我遇到的问题是我的过滤器收到的图像不考虑我的屏幕方向。 Qt文档http://doc.qt.io/qt-5/cameraoverview.html显示了如何根据相机和屏幕方向旋转图像。不清楚的是如何从过滤器获取相机实例。以下是我的QML文件中的相关代码段:
Camera {
id: camera
captureMode: Camera.CaptureStillImage
...
}
MyFilter {
id: filter
}
VideoOutput {
id: viewfinder
source: camera
filters: [ filter ]
...
}
如何从QVideoFilterRunnable实例访问QCamera实例?问候。
答案 0 :(得分:0)
回答关于轮换的具体问题,我的最佳答案是将VideoOutput组件的方向传递给您的自定义组件,即
Camera {
id: camera
captureMode: Camera.CaptureStillImage
...
}
MyFilter {
id: filter
orientation: videofinder.orientation
}
VideoOutput {
id: viewfinder
source: camera
autoOrientation: true
filters: [ filter ]
...
}
这样,您的自定义过滤器就会知道最终用户如何看到您的图片。另一个问题是在某些设备上图像也被翻转:
#ifdef Q_OS_ANDROID
bool flip = true;
#else
bool flip = surfaceFormat.scanLineDirection() == QVideoSurfaceFormat::BottomToTop;
#endif