我一直在尋找一個解決方案,一段時間,並相信它,它的核心,是不可能的。攝像頭捕獲方位檢測
我想知道是否有人發現一個體面的黑客或繞行。
我的問題是這樣的:
我已經捕獲照片的應用程序,那麼該照片作爲畫布,用戶可以點擊到的地方標記。
標籤放置後,用戶上傳照片並將標籤提交給客戶端服務進行解析。
如果照片是在橫向拍攝的,我需要檢測橫向是左還是橫向,以便我可以在它到達畫布時以正確的方向顯示它,並在用戶更改時將其正確翻轉到相反的風景模式。
我怎樣才能捕捉照片拍攝的方向?
我一直在尋找一個解決方案,一段時間,並相信它,它的核心,是不可能的。攝像頭捕獲方位檢測
我想知道是否有人發現一個體面的黑客或繞行。
我的問題是這樣的:
我已經捕獲照片的應用程序,那麼該照片作爲畫布,用戶可以點擊到的地方標記。
標籤放置後,用戶上傳照片並將標籤提交給客戶端服務進行解析。
如果照片是在橫向拍攝的,我需要檢測橫向是左還是橫向,以便我可以在它到達畫布時以正確的方向顯示它,並在用戶更改時將其正確翻轉到相反的風景模式。
我怎樣才能捕捉照片拍攝的方向?
function getOrientation(o) {
switch (o){
case Titanium.UI.PORTRAIT:
return 'portrait';
case Titanium.UI.UPSIDE_PORTRAIT:
return 'upside portrait';
case Titanium.UI.LANDSCAPE_LEFT:
return 'landscape left';
case Titanium.UI.LANDSCAPE_RIGHT:
return 'landscape right';
case Titanium.UI.FACE_UP:
return 'face up';
case Titanium.UI.FACE_DOWN:
return 'face down';
case Titanium.UI.UNKNOWN:
return 'unknown';
}
}
}
Ti.Gesture.addEventListener('orientationchange',function(e){
Ti.API.info('Current Orientation: ' + getOrientation(Titanium.Gesture.orientation));
var orientation = getOrientation(e.orientation);
Titanium.API.info(
"orientation changed = "+orientation+", is portrait?"+e.source.isPortrait()+", orientation = "+Ti.Gesture.orientation + "is landscape?"+e.source.isLandscape()
);
});
從KS修改了一些,但應該做的伎倆。
本應該做上面什麼不
Titanium.Media.showCamera({
success:function(event) {
var orientationWhilePictureTaken = Ti.Gesture.orientation;
// all other camera code...
}
});
只要看看event.media
高度和寬度至少確定縱向或橫向。這不會幫助你向哪個方向翻轉,但我不知道爲什麼你需要從捕捉中弄清楚。圖像保存爲正確的自然方向的風景照片,這樣你會簡單地把它旋轉到手機
Titanium.Media.showCamera({
success: function(event) {
var isLandscape = event.media.width > event.media.height;
}
}
是的,我已經在測試寬度是否大於高度。但是,這不允許我在屏幕更改時旋轉到適當的位置。 – joseym 2011-04-20 02:47:00
也就是說,如果你旋轉設備工程目前的方向,我的問題是我需要的方向當圖像被捕獲時。每當設備方向改變時,上述內容都會改變。 – joseym 2011-04-18 17:52:08
不,與應用拍攝的照片。我寫了一個類似於你所呈現的功能,但如果用戶改變方向,那麼返回改變。 – joseym 2011-04-18 18:06:09
如果您在應用程序中拍攝照片,則可以使用「Ti.Gesture.orientation」捕捉方向,並將其保存在某個地方,然後在應用程序中拍攝每張照片以瞭解方向。 – bh88 2011-04-18 18:07:35