2012-01-28 34 views
3

我一直覺得預覽和最終輸出沒有任何連接,這意味着我可以將預覽設置爲任意維度,並且最終的JPG將是我設置的任何具體分辨率,但我只是遇到了一種非常奇怪的情況,即圖像數據返回到了字節[ ]這是在jpg回調是不同的,這取決於我設置我的預覽的維度。相機預覽如何與最終圖像輸出連接?

有人能告訴我預覽對最終JPG有什麼實際關係嗎? (或者將我指向關於所述關係的文檔)。

TIA

[編輯] 按拉維的回答,這是我的假設爲好,不過,我看不出有什麼辦法,只好猜測,他們是,事實上,根據證據直接相連。如果有必要,我會發布代碼(雖然有很多),但這是我正在做的。

我有一個預覽屏幕,用戶拍攝他們自己的照片。然後,我在隨後的繪製視圖中顯示捕獲的圖片(來自jpg回調位圖數據),並允許它們在其照片上跟蹤形狀。然後,我將它們的多邊形的點傳遞給一個類,該類將原始圖像中的那個形狀剪切掉,然後將剪切後的圖像返回。

所有這些工作,但取決於我如何呈現PREVIEW,多邊形切割類崩潰在數組越界索引,因爲它試圖訪問最終圖像上根本不存在的像素。這種效果是通過改變預覽視圖尺寸的形狀來生成的。我沒有改變代碼中的其他任何東西,但是,只是通過錯誤地塑造我的預覽視圖,我可以在100%的時間內重現此錯誤。

除了預覽和最終是以某種方式直接連接之外,我無法看到其他解釋,因爲我從不操作預覽數據,只將其顯示在SurfaceView中,然後繼續處理用戶拍攝照片後JPG回調的數據。

回答

1

預覽分辨率與捕獲的最終圖像之間沒有關係。

他們是完全獨立的(至少對於靜態圖像捕獲)。無論如何,預覽分辨率和寬高比與最終圖像分辨率和寬高比無關。

在我寫的相機應用,預覽始終是VGA,但我的形象捕獲從5M(取決於設備能力)

或許,如果你能解釋一下情況會比較變化到VGA很有幫助。

+0

ravi,請參閱我的編輯其他細節... – 2012-01-28 17:39:07

+0

@ Dr.Dredel我認爲這與您的縮放因子有關,而不是預覽。您必須首先將座標從設備原點轉換爲圖像原點,然後應用正確的縮放因子將其映射到原始大小的圖像。 – bluefalcon 2012-01-31 07:14:11

1

我們目前正在開發一款相機應用程序,並面臨非常類似的問題。在我們的情況下,我們希望顯示16:9預覽,同時捕獲4:3圖片。在大多數設備上,這種方式沒有任何問題,但在某些情況下(例如Galaxy Nexus,LG Optimus 3D),輸出相機圖片取決於您選擇的預覽。在我們的情況下,當預覽比例與圖像比例不同時,該設備上的輸出圖像會失真。

我們試圖通過在拍攝圖像之前將預覽分辨率更改爲更好的分辨率來解決此問題。但是這在某些設備上不起作用,並且在捕獲完成後再次開始預覽時發生錯誤。 我們也嘗試通過將SurfaceView放大到全屏寬度和「over fullscreen」 - 高度來預覽4:3預覽中的16:9預覽來解決此問題。但這不起作用,因爲SurfaceView不能高於屏幕高度。

因此,在某些設備上有任何連接,我們真的很想知道,如何修復/解決此問題。