簡體   English   中英

如何在QML QVideoFilterRunnable中訪問攝像機?

[英]How to access camera in QML QVideoFilterRunnable?

跟隨位於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實例? 問候。

回答有關旋轉的具體問題,我最好的答案是將方向從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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM