當前位置:首頁 » 安卓系統 » androidcamera開發

androidcamera開發

發布時間: 2022-09-06 04:42:43

㈠ android開發自定義Camera設置相片尺寸

public Bitmap Bytes2Bimap(byte[] b) {
if (b.length != 0) {
Bitmap bitmap = BitmapFactory.decodeByteArray(b, 0, b.length);
// 利用Bitmap對象創建縮略圖
bitmap = ThumbnailUtils.extractThumbnail(bitmap, 400, 400);
return bitmap;
} else {
return null;
}
}
這個能設置圖片的寬高
Bitmap bm = Bytes2Bimap(data);
FileOutputStream fos = new FileOutputStream(pictureFile);
bm.compress(Bitmap.CompressFormat.JPEG, 50, fos);
這個可以壓縮圖片的分辨力為原來的50%

㈡ 學習Android camera驅動開發買哪個開發板

像榮品電子的6818開發板、4418開發板都屬於中低端,5260開發板屬於中高端。當然,要更高端的開發板也有,不過一般做研發、自學這些都已經夠了。主要是根據你的學習目的和要求來選擇,還有費用水平。

驅動開發的技巧:

驅動開發有套路的不管是用戶態驅動還是內核態驅動,基本按照這個套路走,就不會有大問題。特別是初級用戶態驅動,是一層很薄的軟體,就像一個洋蔥剝幾層就看到最裡面的東西,沒太多技術。大部分驅動由於主要做控制和初始化,涉及不到復雜的演算法,所以其實編碼階段大部分都不會太難。

㈢ Android Camera 驅動開發入門必備知識有哪些

1:硬體相關:簡單的數字電路要懂,看的懂電路圖(這個很簡單),能根據電路找到相應Camera硬體連接的GPIO,並根據晶元手冊配置GPIO為相應的模式;比如GPIO模式,輸入IO或輸出IO;或配置成PWM模式;不同的模式這個GPIO的工作方式是不同的;

2:Camera驅動:比如ov5640;你要找本linux驅動相關的書看看,比如《linux設備驅動程序》知道簡單的linux設備驅動寫法;當然工作中Camera驅動不需要你寫的,有參考的可以使用,但是參考驅動一般支持實現錄像、拍照功能,別的白平衡、對焦等都需要你去自己調試;
3:你要學習V4L2協議,因為驅動導出/dev/video0介面是通過V4L2協議的;上層C的應用也是通過V4L2協議訪問/dev/video0的;實際V4L2協議就是通過一些標志linux ioctl()函數和底層驅動通信的;V4L2協議是為了屏蔽各種Camera驅動的不同(比如usb攝像頭,mipi介面攝像頭)而提供的統一和攝像頭驅動通信的規范;

4:你要知道C++的class的相關知識,最好能看到C++的代碼,既然你有C的知識,哪把C++的面相對象看懂,知道C++的class就可以了;為什麼要懂C++呢?因為Android Camera HAL訪問/dev/video0都是用C++寫的,二十幾個個xxxx.cpp不同的類相互繼承實現的;而且你要懂Android HAL層的寫法,至少查查資料知道用哪裡看;一般都是CameraMole.cpp或CameraHal.cpp;

5:JNI的寫法最好以知道一些,至少可以抄就可以,因為這些寫法都是固定的,因為調試的過程中有時候你一個人要從java層跟蹤代碼到HAL層再到驅動;

5:你要會用Linux,因為所有的Android源碼都是在Linux下編譯的;你要知道ARM架構,交叉編譯器;比如arm-linux-gcc;知道怎麼編譯Android和kernel源碼;怎麼刷機;怎麼調試;最好買塊帶Camera的Android開發板;

㈣ 安卓camera開發時怎麼在預覽的時候做鏡像功能

使用一些鏡像安裝器,或者弄個虛擬器,用虛擬機安裝測試,或者使用一些虛擬驅動器載入鏡像進行安裝,很多人都是製作U盤,然後在PE系統裡面使用安裝器進行安裝

㈤ 為什麼Android開發中Camera.open()方法不能用,下面點紅色報錯,api是19

包導錯了,應該是android.hardware.Camera這個包下的,不是android.graphics.Camera

㈥ Android開發(攝像頭的調用)(大神請進……)

打開攝像頭,要 start surfaceiew,當activity執行到onStop()時,要判斷,然後關閉surfaceiew。這樣應該就不會導致程序force close了。或者樓主您直接把force close的log信息打出來,有log才能准確的分析問題。

㈦ Android開發 camera拍照無法獲取Exit信息

private void data2file(byte[] w, String fileName) throws Exception {
FileOutputStream out = null;
try {

out = new FileOutputStream(fileName);
Bitmap bitmap = BitmapFactory.decodeByteArray(w, 0, w.length);
Matrix matrix=new Matrix();
matrix.postScale(1f, 1f);

//旋轉圖片
int deg = this.getWindowManager().getDefaultDisplay().getRotation();
if (deg == Surface.ROTATION_270) {
degree = 180;
matrix.postRotate(degree);
}

Bitmap dstbmp=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),
bitmap.getHeight(),matrix,true);

dstbmp.compress(CompressFormat.JPEG, 100, out);
//out.write(w);
out.flush();
out.close();
dstbmp.recycle();
bitmap.recycle();

} catch (Exception e) {
if (out != null)
out.close();
throw e;
}
}

生成圖片地址後可以做這樣處理,先旋轉到合適的角度,再保存。

㈧ Android開發如何調用相機的全景拍攝功能

  1. 首先,來了解一下什麼是場景模式。

  2. 最簡單的方法當然是google了,這里有一篇文章講得比較通俗易懂。

  3. 內容如下: 一般而言,數碼相機內預先調節好光圈、快門、焦距、測光方式及閃光燈等參數值,以便於那些經驗不足的用戶拍出有一定質量保證的數碼相片。不過用現有的模式也未必能拍出高質量的照片。相當一部份朋友使用的是數碼相機的AUTO(自動)模式,而在特定的拍攝環境中,其相片質量當然難以保障。因此為了更加方便初級用戶的使用,數碼相機廠商在數碼相機內加入了數種場景模式,這樣就更加方便拍出高質量的照片。目前,數碼相機內的場景模式少則有四、五種,多則有二三十種。

  4. 有些相機則是通過菜單來選擇不同的場景模式以下最常見的八種模式:
    風景模式:拍攝風景名勝時,數碼相機會把光圈調到最小以增加景深,另外對焦也變成無限遠,使相片獲得最清晰的效果。
    人像模式:用來拍攝人物相片,如證件照。數碼相機會把光圈調到最大,做出淺景深的效果。而有些相機還會使用能夠表現更強膚色效果的色調、對比度或柔化效果進行拍攝,以突出人像主體。
    夜景模式:夜景模式一般有兩種,前者使用1/10秒左右的快門進行拍攝,從而有可能導致曝光不足。而後者則使用數秒長的快門曝光時間,以保證相片充分曝光,相片畫面也會比較亮。上述兩種都使用較小的光圈進行拍攝,同時閃光燈也會關閉。
    夜景人像模式:在夜景中拍攝人物(如逛燈會),數碼相機通常會使用數秒至1/10秒左右的快門拍攝遠處的風景,並使用閃光燈照亮前景的人物主體,閃光燈通常會在快閃關閉前被觸發。
    動態模式(運動模式):用來拍攝高速移動的物體,數碼相機會把快門速度調到較快(1/500秒),或提高ISO感光值。
    微距模式:用來拍攝細微的目標如花卉、昆蟲等等,數碼相機會使用「微距」焦距,並關閉閃光燈。
    逆光模式:在一些背光的環境下使用,即主體的背後有較強的光線。相機會採用重點測光以增強曝光的准確性、並增加EV值以避免主體過暗,有些相機還會使用閃光燈進行補光。
    全景模式:拍攝超寬幅度的畫面(如山脈、大海)時,數碼相機會在每張相片後留出多餘位置,幫助攝影者連續拍攝多張風景相片,再組成一張超寬的風景照。

  5. 現在智能手機的攝像頭一般都在 5M, 8M, 12M, 高的都有 13M, 如 sony 的Xperia™
    ZL L35h手機。可以媲美一般的卡片相機了。也有很多的參數可調,其中就包括了場景模式。

  6. MTK android 平台中,它的場景模式設置是寫在 cfg_ftbl_custom_raw_main.h 文件中的。

  7. Location:ALPS.ICS***mediatekcustomproject_namehalcameracameracfg_ftbl_custom_raw_main.h

詳細代碼詳細代碼

㈨ Android開發 Camera出現問題Fail to connect to camera service

1,手機上有安裝安全過濾軟體。因為camera屬於較為敏感的許可權,所以,有些手機安全管家會自動拒絕camera的打開操作。
針對這種錯誤,可以在手機安全管家軟體中,降低一下camera的安全級別,或把自己的APP添加到白名單中。

2,AndroidManifest.xml中沒有添加camera的許可權申請,對策則是添加<uses-permission android:name="android.permission.CAMERA"/>許可權申請。

3,之前對camera打開後,並沒有釋放掉。
解決對策就是調用下面的處理
camera.stopPreview();
camera.release();
camera = null;

4,內存佔用過多,可能導致了自己應用可分配的內存不足了。這個場景的錯誤差不多是在自己的應用中打開攝像頭,對攝像頭取得的每一幀數據都進行額外的處理,隨著處理次數的增加,如果有沒被及時銷毀的對象存在,則就極有可能會導致本文開頭出現的異常了。針對此種問題,解決的方法就是仔細檢查臨時創建的對象是否都已經釋放掉。

㈩ Android開發 如何打開前置攝像頭的代碼

找到surficeView
surfaceView = (SurfaceView)findViewById(R.id.surfaceview);
設置它的像素為800x600
surfaceView.getHolder().setFixedSize(800,480);
//下面設置surfaceView不維護自己的緩沖區,而是等待屏幕的渲染引擎將內容推送到用戶面前
surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
然後就是回調
surfaceView.getHolder().addCallback(newSurfaceCallback());
上面的回調類是我們自己定義的,代碼如下
private class SurfaceCallback implementsSurfaceHolder.Callback{
@Override
public void surfaceCreated(SurfaceHolderholder) {
try {
camera = Camera.open();//打開硬體攝像頭,這里導包得時候一定要注意是android.hardware.Camera
WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);//得到窗口管理器
Display display = wm.getDefaultDisplay();//得到當前屏幕
Camera.Parameters parameters =camera.getParameters();//得到攝像頭的參數
parameters.setPreviewSize(display.getWidth(),display.getHeight());//設置預覽照片的大小
parameters.setPreviewFrameRate(3);//設置每秒3幀
parameters.setPictureFormat(PixelFormat.JPEG);//設置照片的格式
parameters.setJpegQuality(85);//設置照片的質量
parameters.setPictureSize(display.getHeight(),display.getWidth());//設置照片的大小,默認是和屏幕一樣大
camera.setParameters(parameters);
camera.setPreviewDisplay(surfaceView.getHolder());//通過SurfaceView顯示取景畫面
camera.startPreview();//開始預覽
isPreview = true;//設置是否預覽參數為真
} catch (IOException e) {
Log.e(TAG, e.toString());
}
}

@Override
public void surfaceChanged(SurfaceHolderholder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceDestroyed(SurfaceHolderholder) {
if(camera!=null){
if(isPreview){//如果正在預覽
camera.stopPreview();
camera.release();
}
}
}
}

熱點內容
手機f加密 發布:2024-05-19 03:28:47 瀏覽:225
用什麼密碼寫日記 發布:2024-05-19 03:27:57 瀏覽:303
資料庫access2003 發布:2024-05-19 02:49:39 瀏覽:620
碧藍航線pc掛機腳本 發布:2024-05-19 02:30:03 瀏覽:589
腳本fir 發布:2024-05-19 02:28:57 瀏覽:261
阿里雲獨享伺服器 發布:2024-05-19 02:23:54 瀏覽:253
織夢源碼ga 發布:2024-05-19 02:23:20 瀏覽:571
java文件名後綴 發布:2024-05-19 02:14:39 瀏覽:956
快手點榜腳本 發布:2024-05-19 02:08:44 瀏覽:163
pythonforinkeys 發布:2024-05-19 01:55:44 瀏覽:793