簡體   English   中英

為什么在Camera2 API中以不同的方式實現縮放?

[英]Why is zoom implemented differently in Camera2 API?

在我的Android應用中,我試圖使用Camera2 API來實現相機縮放。 關於如何使用Camera2 API實現縮放的示例很多。 使用TextureView的Zoom Camera2 Preview中提到了這樣一個示例。 這是基本的代碼片段:

float maxZoom = characteristics.get(CameraCharacteristics.SCALER_AVAILABLE_MAX_DIGITAL_ZOOM));
currentZoom = adjustZoom(currentZoom, maxZoom);
Rect m = characteristics.get(CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE);
Rect m1 = cropRectangleBasedOnZoom(m1, curZoom);
previewRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, m1);
...

這似乎有效。 但是,舊的Camera1 API具有設置縮放值的簡單方法。 為什么必須要通過額外的邏輯來調整Camera2 API中的區域? Camera2邏輯是否可以帶來更好的圖像質量?

另外,有沒有辦法獲得最大光學變焦的值? 問候。

使用Camera2,設備可以支持離軸縮放,這比舊的API設計更加靈活。 也就是說,並非所有設備都支持該功能,您可以通過SCALER_CROPPING_TYPE檢查設備是否支持該功能。

通常,camera2嘗試將所有坐標綁定到傳感器活動數組,因此始終很清楚要考慮傳感器的哪一部分,因此這是一致性的問題。

裁剪區域不支持光學變焦。 這完全是關於數碼變焦。 如果設備支持光學變焦,則通過AVAILABLE_FOCAL_LENGTHSLENS_FOCAL_LENGTH進行

暫無
暫無

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

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