[英]Rotating the preview with CameraX
我有一個帶有旋轉相機的專有設備,它不會向操作系統報告其旋轉情況。
我們將CameraX
與PreviewView
一起使用,我將圖像旋轉 90 度並進行鏡像。
有沒有一種有效的方法來旋轉預覽?
PreviewView
當然不起作用,它只是修改了 ViewPort,因為它不會旋轉表面。ViewFinder
庫 - 輸出位圖但不連接到Preview
(或者有人對此有解決方案嗎?)。 沒有setSurfaceProvider
,什么都不會清空幀管道,也不會顯示任何內容。我們目前使用位圖(通過分析器),然后我們顯示位圖。 那很丑,而且 CPU 很貴。
Camera2 是唯一可以很好地旋轉預覽的方法嗎? Camera2 無論如何都會做位圖,但它可能會在硬件上進行 YUV 轉換。
像這里這樣的解決方案不起作用。 設置預覽的目標方向只會修改比例以補償縱橫比。 它實際上並不旋轉。 這也不起作用,因為它已經過時並且不再有效。
Preview#setTargetRotation
API 應該可以工作: https://developer.android.com/reference/androidx/camera/core/Preview#setTargetRotation(int)
要使此 API 正常工作,您的PreviewView
必須處於COMPATIBLE
模式:
PreviewView#setImplementationMode(ImplementationMode.COMPATIBLE);
您可以在 GitHub 上找到完整的示例: https ://github.com/androidx/androidx/blob/androidx-main/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/PreviewViewFragment .java
我上傳了預覽旋轉的屏幕記錄。 如果這不是您想要的結果,請看一下並告訴我: https ://github.com/xizhang/public-files/blob/main/stackoverflow74798791/preview_rotation.mp4
也可以下載APK自己測試: https ://github.com/xizhang/public-files/blob/main/stackoverflow74798791/camera-testapp-view-debug.apk
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.