java 線上拍照代碼

來源:互聯網
上載者:User

java 線上拍照代碼

在數位相機的普及(尤其是在電話手機),導致其價格下降就像他們的規模大幅縮水。

它現在越來越難找到,即使沒有網路攝影機的手機,和機器人裝置不可能例外。要訪問相機

的硬體,你需要添加到您的照相機許可應用程式資訊清單,如下所示:


<uses-permission android:name="android.permission.CAMERA"/>
 
這授予訪問相機服務。該相機類可以調整相機設定,拍照,攝像和處理流媒體預覽。要

訪問照相機服務,使用相機的靜態類的open方法。當您的應用程式與相機後,記得致電

放棄後釋放的簡單使用模式的程式碼片段所示您對服務進行:

Camera camera = Camera.open();
  [ … Do things with the camera … ]
camera.release();
控制網路攝影機設定


目前的相機設定可以作為Camera.Parameters對象。呼籲相機的getParameters方法來訪

問當前的參數。您可以使用設定在返回的參數*方法修改設定。以應用更改,請

setParameters,作為修改後的價值的承傳如下:


Camera.Parameters parameters = camera.getParameters();
parameters.setPictureFormat(PixelFormat.JPEG);
camera.setParameters(parameters);

該相機的參數可以用來指定圖片和預覽的大小,映像格式和預覽畫面播放速率。

使用相機預覽

進入相機的流式視頻意味著您可以合并到應用現場視頻。最令人興奮的早期機器人應用

一些用作充實的現實基礎,此功能。該相機可顯示預覽即時到一個表面,如下面的代碼

片段所示:

camera.setPreviewDisplay(mySurface);
camera.startPreview();
[ … ]
camera.stopPreview();

您將瞭解在下一章表面多,雖然機器人包括一個用SurfaceView顯示即時網路攝影機預覽很好

的例子。這個例子可以在圖形/ CameraPreview在SDK API的示範項目。

您也可以指定一個PreviewCallback被解僱每個預覽框,讓您操作或顯示每個單獨幀預覽

。調用對象的照相機setPreviewCallback方法,在新的PreviewCallback覆蓋

onPreviewFrame方法傳遞的執行情況如下所示:

camera.setPreviewCallback(new PreviewCallback() {
 
  public void onPreviewFrame(byte[] _data, Camera _camera) {
   // TODO Do something with the preview image.
  }
});

過調用一個Camera對象takePicture圖片,在ShutterCallback和RAW和JPEG

PictureCallback實現通過編碼的映像。每個圖片回調將收到的位元組數組代表以適當的格

式的映像,而快門回調觸發快門後立即關閉

private void takePicture() {
  camera.takePicture(shutterCallback, rawCallback, jpegCallback);
}
 
ShutterCallback shutterCallback = new ShutterCallback() {
  public void onShutter() {
    // TODO Do something when the shutter closes.
  }
};
 
PictureCallback rawCallback = new PictureCallback() {
  public void onPictureTaken(byte[] _data, Camera _camera) {
    // TODO Do something with the image RAW data.
  }
};
 
PictureCallback jpegCallback = new PictureCallback() {
  public void onPictureTaken(byte[] _data, Camera _camera) {
    // TODO Do something with the image JPEG data.
  }
};

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.