1.????圖像傳感器采集圖像的方向.????
? ? ? ? ? 如今生活當(dāng)中每一個(gè)人都離不開(kāi)手機(jī)庞瘸,拍攝照片更加常見(jiàn)焰薄,剛好最近在研究Android中的Camera的“方向”問(wèn)題,總結(jié)一下跟压。好了胰蝠,進(jìn)入正題,通過(guò)手機(jī)的Camera拍攝出來(lái)的照片來(lái)自于相機(jī)的圖像傳感器震蒋,相機(jī)被固定到手機(jī)后茸塞,相機(jī)的圖像傳感器的圖像采集方向就固定住了,因此相機(jī)傳感器的采集圖像的方向我們是改變不了查剖,只能對(duì)采集后獲得的圖片數(shù)據(jù)進(jìn)行旋轉(zhuǎn)钾虐,以便得到正確的預(yù)覽。我們可以通過(guò)CameraInfo對(duì)象的orientation屬性來(lái)獲取圖像傳感器的圖像采集方向笋庄,orientation屬性就描述著相機(jī)的圖像傳感器采集圖像的方向效扫,orientation是一個(gè)角度值,只能是0直砂,90菌仁,180,270四個(gè)中的一個(gè)静暂,表示的含義就是圖像傳感器采集圖像的角度济丘,忘記說(shuō)了,這里的角度是相對(duì)于手機(jī)的“自然方向”來(lái)說(shuō)的,何為“自然方向”摹迷?是指當(dāng)寬比高短時(shí)疟赊,我們看到的手機(jī)的方向(豎屏),可以這樣理解峡碉,這個(gè)值是相機(jī)所采集的圖片需要順時(shí)針旋轉(zhuǎn)至自然方向的角度值近哟,因?yàn)槿绻覀円朐谑謾C(jī)的自然方向上正確預(yù)覽相機(jī)拍照的圖片數(shù)據(jù),我們必須對(duì)相機(jī)傳感器采集的圖像進(jìn)行順時(shí)針旋轉(zhuǎn)异赫,這個(gè)旋轉(zhuǎn)的角度就是orientation椅挣,注意只能對(duì)拍照后獲得的圖片數(shù)據(jù)進(jìn)行旋轉(zhuǎn),我們是無(wú)法改變相機(jī)傳感器采集圖像的方向的塔拳,因?yàn)樗谙鄼C(jī)被固定到手機(jī)上后鼠证,就被固定死了。?
2.圖像傳感器的預(yù)覽方向靠抑。
? ? ? ? ? ? ?圖像傳感器的預(yù)覽方向默認(rèn)情況下是和圖像傳感器的圖像采集方向是一致量九,也就是前面提到的orientation值,那這里為什么說(shuō)默認(rèn)呢颂碧?是因?yàn)橄鄼C(jī)傳感器的預(yù)覽方向是可以改變的荠列,不像圖像傳感器的圖像采集方向無(wú)法改變,通過(guò)Camera對(duì)象的setDisplayOrientation方法改變預(yù)覽方向(順時(shí)針旋轉(zhuǎn))载城。對(duì)大部分手機(jī)來(lái)說(shuō)肌似,后置攝像頭的orientation為90,也就是說(shuō)我們需要對(duì)拍照采集的圖片數(shù)據(jù)順時(shí)針旋轉(zhuǎn)90度诉瓦,才能夠在自然方向正確預(yù)覽我們拍攝后的圖片川队,需要通過(guò)Camera對(duì)象的setDisplayOrientation順時(shí)針旋轉(zhuǎn)90度才能在自然方向正確預(yù)覽我們的攝像頭畫(huà)面。同樣對(duì)于大部分手機(jī)來(lái)說(shuō)睬澡,前置攝像頭的orientation通常為270度固额,也就是說(shuō)我們需要對(duì)拍照采集的圖片數(shù)據(jù)順時(shí)針旋轉(zhuǎn)270度,才能夠在自然方向正確預(yù)覽我們拍攝后的圖片煞聪,但是我們預(yù)覽方向我們卻不是順時(shí)針旋轉(zhuǎn)270度斗躏,而是90度,這是為什么呢昔脯?因?yàn)榍罢邤z像頭會(huì)在旋轉(zhuǎn)預(yù)覽方向之前啄糙,會(huì)對(duì)預(yù)覽方向來(lái)一個(gè)水平的鏡像翻轉(zhuǎn),這就是為什么我們通過(guò)前者攝像頭像是在照鏡子一般云稚,可能還不太理解迈套,我們會(huì)通過(guò)圖片來(lái)對(duì)上面的分析進(jìn)行演示。?
3.圖解演示旋轉(zhuǎn)過(guò)程
后置攝像頭orientation=90碱鳞,此時(shí)圖像傳感器采集圖像的方向90度,相對(duì)于自然方向踱蛀,如下:
此時(shí)圖像采集的方向我們是無(wú)法改變的窿给,但是能夠改變預(yù)覽的方向贵白,通過(guò)setDisplayOrientation(90)順時(shí)針旋轉(zhuǎn)預(yù)覽方向,以便在自然方向進(jìn)行正確預(yù)覽崩泡。
我們來(lái)看看前置攝像頭orientation=270的情況禁荒,銘記前置攝像頭預(yù)覽方向在旋轉(zhuǎn)之前會(huì)進(jìn)行一個(gè)水平鏡像翻轉(zhuǎn)(可以理解為逆時(shí)針旋轉(zhuǎn)180),這就是為什么我們通過(guò)手機(jī)前置攝像頭預(yù)覽時(shí)角撞,看到的像是在照鏡子一般呛伴。
此時(shí)我們需要將獲取到的圖片數(shù)據(jù)進(jìn)行順時(shí)針旋轉(zhuǎn)270度,才能夠在手機(jī)自然方向正確預(yù)覽谒所。接下來(lái)看看前者攝像頭預(yù)覽方向热康,注意咯
4.如何計(jì)算
? ? ? ? ? ? ? ? ? ? ? ??
好了劣领,就到這姐军,水平有限,有什么錯(cuò)誤的地方尖淘,希望各位大神留言奕锌,拜托了。