android: camera相機開發知識點介紹了進行camera開發需要了解的知識點
由於6.0 以上的系統需要我們在程式執行的時候進行動態許可權申請,所以我們需要在程式啟動的時候去檢查許可權,有任何乙個必要的許可權被使用者拒絕時,我們就彈窗提示使用者程式因為許可權被拒絕而無法正常工作:
private static final int request_permissions_code = 1;
private static final string required_permissions = ;
@override
protected void onresume()
}/**
* 判斷我們需要的許可權是否被授予,只要有乙個沒有授權,我們都會返回 false。
** @return true 許可權都被授權
*/private boolean isrequiredpermissionsgranted()
}return true;
}
使用者在一台沒有任何攝像頭的手機上安裝你的相機應用程式,是沒有意義的。所以接下來要做的就是在 androidmanifest.xml 中配置一些程式執行時必要的相機特性,如果這些特性不支援,那麼使用者在安裝 apk 的時候就會因為條件不符合而無法安裝
......
我們通過
標籤宣告了我們的應用程式必須在具有攝像頭的手機上才能執行。另外你還可以配置更多的特性要求
並不是所有的手機都支援前後置攝像頭,甚至有手機乙個攝像頭都沒有,所以我們首先要確定當前的裝置支援多少個攝像頭
int numberofcameras = camera.getnumberofcameras();// 獲取攝像頭個數
根據android: camera相機開發知識點講到的關於camerainfo
的內容我們知道,我們可以通過facing
判斷攝像頭是前置還是後置,通過orientation
值取校正攝像頭的畫面。接下來,我們看下如何獲取camera.camerainfo
例項:
@nullable
private camera.camerainfo mfrontcamerainfo = null;
private int mfrontcameraid = -1;
@nullable
private camera.camerainfo mbackcamerainfo = null;
private int mbackcameraid = -1;
/** * 初始化攝像頭資訊。
*/private void initcamerainfo() else if (camerainfo.facing == camera.camerainfo.camera_facing_front)
}}
從上面的**可以看出camera.camerainfo
的獲取非常簡單,只需要你建立乙個camera.camerainfo
例項,然後通過camera.getcamerainfo(int, camera.camerainfo)
方法就可以將相機資訊填充到你建立的例項中。另外值得注意的一點是,相機的 id 實際上就是從 0 到 numberofcameras 遞增,大部分手機的後置攝像頭的 id 是 0,前置攝像頭的 id 是 1,但是我們最好還是通過facing
欄位去判斷比較靠譜
tips:camera.getnumberofcameras() 和 camera.getcamerainfo(int,接下來我們要做的就是呼叫camera.camerainfo) 都不需要相機許可權
camera.open(int)
方法開啟相機了,需要注意的是你必須確保在開啟相機之前已經被授予了相機許可權,否則會拋許可權異常。乙個比較穩妥的做法就是每次開啟相機之前檢查相機許可權
private camera mcamera;
/*** 開啟指定攝像頭
*/private void opencamera()
if (contextcompat.checkselfpermission(this, manifest.permission.camera) == packagemanager.permission_granted) else if (hasbackcamera()) else }}
/*** 判斷是否有前置攝像頭。
** @return true 代表有前置攝像頭
*/private boolean hasfrontcamera()
/*** 判斷是否有後置攝像頭。
** @return true 代表有後置攝像頭
*/private boolean hasbackcamera()
/**
* 關閉相機。
*/private void closecamera()
}
unity3d 相機Camera簡單介紹
一 檢視面板 二 面板介紹 1 ckearflags 空白旗子,把空白的地方顯示 skybox 天空盒子 solider color 純色顯示 depth 只看深度高低 顯示物體 空白不管 黑色 don t clear 只顯示物體,其他都不顯示 具體有待補充 2 background 設定純色的背景...
iOS開發高階 實現類似美顏相機的相機啟動動畫
最近在寫乙個相簿的demo,偶爾看到了美拍的相機過載動畫覺得很有意思,就想在我的相簿demo中加入乙個這種特效,下面把我的想法和實現過程給大家分享一下 這個動效看起來很有特色但是實現起來是非常簡單的,只需要用到calayer和cashapelayer做為展示層,然後通過cabasicanimatio...
NDK 開發實戰 實現相機美顏功能
在 圖形影象處理 實現的美容效果 一文中提到了的美容,採用雙邊濾波演算法來實現,具體的演算法流程和實現思路,大家可以在上篇文章中了解,這篇文章就在不再反覆囉嗦了。這裡我們再次來看下處理效果 上面的效果看似好像不錯,其實存在了大量的問題。從處理速度上來說,雙邊模糊演算法是在二維的高斯函式上新增畫素差值...