You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

420 lines
20 KiB

  1. <!---
  2. # license: Licensed to the Apache Software Foundation (ASF) under one
  3. # or more contributor license agreements. See the NOTICE file
  4. # distributed with this work for additional information
  5. # regarding copyright ownership. The ASF licenses this file
  6. # to you under the Apache License, Version 2.0 (the
  7. # "License"); you may not use this file except in compliance
  8. # with the License. You may obtain a copy of the License at
  9. #
  10. # http://www.apache.org/licenses/LICENSE-2.0
  11. #
  12. # Unless required by applicable law or agreed to in writing,
  13. # software distributed under the License is distributed on an
  14. # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15. # KIND, either express or implied. See the License for the
  16. # specific language governing permissions and limitations
  17. # under the License.
  18. -->
  19. # cordova-plugin-camera
  20. [![Build Status](https://travis-ci.org/apache/cordova-plugin-camera.svg)](https://travis-ci.org/apache/cordova-plugin-camera)
  21. このプラグインは、写真を撮るため、システムのイメージ ライブラリからイメージを選択するために API を提供します、グローバル `navigator.camera` オブジェクトを定義します。
  22. オブジェクトは、グローバル スコープの `ナビゲーター` に添付、それがないまで `deviceready` イベントの後。
  23. document.addEventListener("deviceready", onDeviceReady, false);
  24. function onDeviceReady() {
  25. console.log(navigator.camera);
  26. }
  27. ## インストール
  28. cordova plugin add cordova-plugin-camera
  29. ## API
  30. * カメラ
  31. * navigator.camera.getPicture(success, fail, options)
  32. * CameraOptions
  33. * CameraPopoverHandle
  34. * CameraPopoverOptions
  35. * navigator.camera.cleanup
  36. ## navigator.camera.getPicture
  37. カメラを使用して写真を取るか、デバイスの画像ギャラリーから写真を取得します。 イメージが渡されます成功時のコールバックを base64 エンコードされた `文字列`、または、URI としてイメージ ファイル。 メソッド自体はファイル選択ポップ オーバーの位置を変更するために使用できる `CameraPopoverHandle` オブジェクトを返します。
  38. navigator.camera.getPicture(cameraSuccess, cameraError, cameraOptions);
  39. #### 解説
  40. `camera.getPicture` 関数は、ユーザーの写真をスナップすることができますデバイスのデフォルト カメラ アプリケーションを開きます。 `Camera.sourceType``Camera.PictureSourceType.CAMERA` と等しい場合既定では、この現象が発生します。 ユーザーは写真をスナップ、カメラ アプリケーションを閉じるし、アプリケーションが復元されます。
  41. `Camera.sourceType` `Camera.PictureSourceType.PHOTOLIBRARY` または `Camera.PictureSourceType.SAVEDPHOTOALBUM` の場合、ダイアログ ボックスはユーザーを既存のイメージを選択することができますが表示されます。 `camera.getPicture` 関数は、デバイスの向きが変更されたとき、たとえば、イメージの選択ダイアログには、位置を変更するために使用することができます、`CameraPopoverHandle` オブジェクトを返します。
  42. 戻り値が `cameraSuccess` コールバック関数の指定 `cameraOptions` に応じて、次の形式のいずれかに送信されます。
  43. * A `String` 写真の base64 でエンコードされたイメージを含んでいます。
  44. * A `String` (既定値) のローカル記憶域上のイメージ ファイルの場所を表します。
  45. 自由に変更、エンコードされたイメージ、または URI などを行うことができます。
  46. * イメージをレンダリングする `<img>` 以下の例のように、タグ
  47. * ローカル データの保存 ( `LocalStorage` 、 [Lawnchair](http://brianleroux.github.com/lawnchair/)など)。
  48. * リモート サーバーにデータを投稿します。
  49. **注**: 新しいデバイス上の写真の解像度はかなり良いです。 デバイスのギャラリーから選択した写真は `quality` パラメーターが指定されて場合でも下方の品質に縮小されません。 一般的なメモリの問題を避けるために `DATA_URL` ではなく `FILE_URI``Camera.destinationType` を設定します。.
  50. #### サポートされているプラットフォーム
  51. ![](doc/img/android-success.png) ![](doc/img/blackberry-success.png) ![](doc/img/browser-success.png) ![](doc/img/firefox-success.png) ![](doc/img/fireos-success.png) ![](doc/img/ios-success.png) ![](doc/img/windows-success.png) ![](doc/img/wp8-success.png) ![](doc/img/ubuntu-success.png)
  52. #### 例
  53. 写真を撮るし、base64 エンコード イメージとして取得します。
  54. navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
  55. destinationType: Camera.DestinationType.DATA_URL
  56. });
  57. function onSuccess(imageData) {
  58. var image = document.getElementById('myImage');
  59. image.src = "data:image/jpeg;base64," + imageData;
  60. }
  61. function onFail(message) {
  62. alert('Failed because: ' + message);
  63. }
  64. 写真を撮るし、イメージのファイルの場所を取得します。
  65. navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
  66. destinationType: Camera.DestinationType.FILE_URI });
  67. function onSuccess(imageURI) {
  68. var image = document.getElementById('myImage');
  69. image.src = imageURI;
  70. }
  71. function onFail(message) {
  72. alert('Failed because: ' + message);
  73. }
  74. #### 環境設定 (iOS)
  75. * **CameraUsesGeolocation**(ブール値、デフォルトは false)。 Jpeg 画像をキャプチャするため EXIF ヘッダーで地理位置情報データを取得する場合は true に設定します。 これは、場合地理位置情報のアクセス許可に対する要求をトリガーする true に設定します。
  76. <preference name="CameraUsesGeolocation" value="false" />
  77. #### アマゾン火 OS 癖
  78. アマゾン火 OS イメージをキャプチャするデバイス上のカメラの活動を開始する意図を使用して、メモリの少ない携帯電話、コルドバ活動が殺されるかもしれない。 このシナリオではコルドバ活動が復元されると、イメージが表示されません。
  79. #### Android の癖
  80. アンドロイド、イメージをキャプチャするデバイス上でカメラのアクティビティを開始する意図を使用し、メモリの少ない携帯電話、コルドバ活動が殺されるかもしれない。 このシナリオではコルドバ活動が復元されると、イメージが表示されません。
  81. #### ブラウザーの癖
  82. Base64 エンコード イメージとして写真を返すのみことができます。
  83. #### Firefox OS 癖
  84. カメラのプラグインは現在、[Web アクティビティ](https://hacks.mozilla.org/2013/01/introducing-web-activities/) を使用して実装されていた.
  85. #### iOS の癖
  86. コールバック関数のいずれかの JavaScript `alert()` を含む問題が発生することができます。 IOS イメージ ピッカーまたは完全が終了するまで、警告が表示されますポップ オーバーを許可する `setTimeout()` 内でアラートをラップします。
  87. setTimeout(function() {
  88. // do your thing here!
  89. }, 0);
  90. #### Windows Phone 7 の癖
  91. ネイティブ カメラ アプリケーションを呼び出すと、デバイスが Zune を介して接続されている動作しませんし、エラー コールバックをトリガーします。
  92. #### Tizen の癖
  93. Tizen のみ `Camera.DestinationType.FILE_URI``destinationType``Camera.PictureSourceType.PHOTOLIBRARY``sourceType` をサポートしています.
  94. ## CameraOptions
  95. カメラの設定をカスタマイズするオプションのパラメーター。
  96. { quality : 75,
  97. destinationType : Camera.DestinationType.DATA_URL,
  98. sourceType : Camera.PictureSourceType.CAMERA,
  99. allowEdit : true,
  100. encodingType: Camera.EncodingType.JPEG,
  101. targetWidth: 100,
  102. targetHeight: 100,
  103. popoverOptions: CameraPopoverOptions,
  104. saveToPhotoAlbum: false };
  105. * **quality**: 0-100、100 がファイルの圧縮から損失なしで通常のフル解像度の範囲で表される、保存されたイメージの品質。 既定値は 50 です。 *(数)*(カメラの解像度についての情報が利用できないことに注意してください)。
  106. * **destinationType**: 戻り値の形式を選択します。既定値は FILE_URI です。定義されている `navigator.camera.DestinationType` *(番号)*
  107. Camera.DestinationType = {
  108. DATA_URL : 0, // Return image as base64-encoded string
  109. FILE_URI : 1, // Return image file URI
  110. NATIVE_URI : 2 // Return image native URI (e.g., assets-library:// on iOS or content:// on Android)
  111. };
  112. * **sourceType**: 画像のソースを設定します。既定値は、カメラです。定義されている `navigator.camera.PictureSourceType` *(番号)*
  113. Camera.PictureSourceType = {
  114. PHOTOLIBRARY : 0,
  115. CAMERA : 1,
  116. SAVEDPHOTOALBUM : 2
  117. };
  118. * **allowEdit**: 単純な選択の前に画像の編集を許可します。*(ブール値)*
  119. * **encodingType**: 返されるイメージ ファイルのエンコーディングを選択します。デフォルトは JPEG です。定義されている `navigator.camera.EncodingType` *(番号)*
  120. Camera.EncodingType = {
  121. JPEG : 0, // Return JPEG encoded image
  122. PNG : 1 // Return PNG encoded image
  123. };
  124. * **targetWidth**: スケール イメージにピクセル単位の幅。**TargetHeight**を使用する必要があります。縦横比は変わりません。*(数)*
  125. * **targetHeight**: スケール イメージにピクセル単位の高さ。**TargetWidth**を使用する必要があります。縦横比は変わりません。*(数)*
  126. * **mediaType**: から選択するメディアの種類を設定します。 場合にのみ働きます `PictureSourceType``PHOTOLIBRARY` または `SAVEDPHOTOALBUM` 。 定義されている `nagivator.camera.MediaType` *(番号)*
  127. Camera.MediaType = {
  128. PICTURE: 0, // allow selection of still pictures only. DEFAULT. Will return format specified via DestinationType
  129. VIDEO: 1, // allow selection of video only, WILL ALWAYS RETURN FILE_URI
  130. ALLMEDIA : 2 // allow selection from all media types
  131. };
  132. * **correctOrientation**: キャプチャ中に、デバイスの向きを修正する画像を回転させます。*(ブール値)*
  133. * **saveToPhotoAlbum**: キャプチャ後、デバイス上のフォト アルバムに画像を保存します。*(ブール値)*
  134. * **popoverOptions**: iPad のポップ オーバーの場所を指定する iOS のみのオプションです。定義されています。`CameraPopoverOptions`.
  135. * **cameraDirection**: (前面または背面側) を使用するカメラを選択します。既定値は戻るです。定義されている `navigator.camera.Direction` *(番号)*
  136. Camera.Direction = {
  137. BACK : 0, // Use the back-facing camera
  138. FRONT : 1 // Use the front-facing camera
  139. };
  140. #### アマゾン火 OS 癖
  141. * 任意 `cameraDirection` 背面写真で結果の値します。
  142. * 無視、 `allowEdit` パラメーター。
  143. * `Camera.PictureSourceType.PHOTOLIBRARY``Camera.PictureSourceType.SAVEDPHOTOALBUM`両方のアルバムが表示されます同じ写真。
  144. #### Android の癖
  145. * 任意 `cameraDirection` 背面写真で結果の値します。
  146. * アンドロイドも使用しています作物活性、allowEdit もトリミングする必要があります動作し、実際にトリミングされた画像をコルドバで 1 つだけの作品一貫して Google プラス写真アプリケーションにバンドルされているものであることに渡します。 他の作物が機能しません。
  147. * `Camera.PictureSourceType.PHOTOLIBRARY``Camera.PictureSourceType.SAVEDPHOTOALBUM`両方のアルバムが表示されます同じ写真。
  148. #### ブラックベリー 10 癖
  149. * 無視、 `quality` パラメーター。
  150. * 無視、 `allowEdit` パラメーター。
  151. * `Camera.MediaType`サポートされていません。
  152. * 無視、 `correctOrientation` パラメーター。
  153. * 無視、 `cameraDirection` パラメーター。
  154. #### Firefox OS 癖
  155. * 無視、 `quality` パラメーター。
  156. * `Camera.DestinationType`無視され、等しい `1` (イメージ ファイル URI)
  157. * 無視、 `allowEdit` パラメーター。
  158. * 無視、 `PictureSourceType` パラメーター (ユーザーが選択ダイアログ ウィンドウに)
  159. * 無視します、`encodingType`
  160. * 無視、 `targetWidth` と`targetHeight`
  161. * `Camera.MediaType`サポートされていません。
  162. * 無視、 `correctOrientation` パラメーター。
  163. * 無視、 `cameraDirection` パラメーター。
  164. #### iOS の癖
  165. * 設定 `quality` 一部のデバイスでメモリ不足エラーを避けるために 50 の下。
  166. * 使用する場合 `destinationType.FILE_URI` 、写真、アプリケーションの一時ディレクトリに保存されます。アプリケーションの一時ディレクトリの内容は、アプリケーションの終了時に削除されます。
  167. #### Tizen の癖
  168. * サポートされていないオプション
  169. * 常にファイルの URI を返す
  170. #### Windows Phone 7 と 8 癖
  171. * 無視、 `allowEdit` パラメーター。
  172. * 無視、 `correctOrientation` パラメーター。
  173. * 無視、 `cameraDirection` パラメーター。
  174. * 無視、 `saveToPhotoAlbum` パラメーター。 重要: wp7/8 コルドバ カメラ API で撮影したすべての画像は携帯電話のカメラ巻き物に常にコピーします。 ユーザーの設定に応じて、これも、画像はその OneDrive に自動アップロードを意味できます。 イメージは意図したアプリより広い聴衆に利用できる可能性があります可能性があります。 場合は、このアプリケーションのブロッカー、msdn で説明されているように、CameraCaptureTask を実装する必要があります: <http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh394006.aspx>コメントにすることがありますもかアップ投票関連の問題を[課題追跡システム](https://issues.apache.org/jira/browse/CB-2083)で
  175. * 無視、 `mediaType` のプロパティ `cameraOptions` として Windows Phone SDK には、フォト ライブラリからビデオを選択する方法は行いません。
  176. ## CameraError
  177. エラー メッセージを提供する onError コールバック関数。
  178. function(message) {
  179. // Show a helpful message
  180. }
  181. #### 解説
  182. * **message**: メッセージは、デバイスのネイティブ コードによって提供されます。*(文字列)*
  183. ## cameraSuccess
  184. 画像データを提供する onSuccess コールバック関数。
  185. function(imageData) {
  186. // Do something with the image
  187. }
  188. #### 解説
  189. * **imagedata を扱う**: Base64 エンコード イメージのデータ、*または*画像ファイルによって URI の `cameraOptions` 効果。*(文字列)*
  190. #### 例
  191. // Show image
  192. //
  193. function cameraCallback(imageData) {
  194. var image = document.getElementById('myImage');
  195. image.src = "data:image/jpeg;base64," + imageData;
  196. }
  197. ## CameraPopoverHandle
  198. `Navigator.camera.getPicture` によって作成されたポップオーバーパン ダイアログ ボックスへのハンドル.
  199. #### 解説
  200. * **setPosition**: Set the position of the popover. Takes the `CameraPopoverOptions` that specify the new position.
  201. #### サポートされているプラットフォーム
  202. ![](doc/img/android-fail.png) ![](doc/img/blackberry-fail.png) ![](doc/img/browser-fail.png) ![](doc/img/firefox-fail.png) ![](doc/img/fireos-fail.png) ![](doc/img/ios-success.png) ![](doc/img/windows-fail.png) ![](doc/img/wp8-fail.png) ![](doc/img/ubuntu-fail.png)
  203. #### 例
  204. var cameraPopoverHandle = navigator.camera.getPicture(onSuccess, onFail,
  205. { destinationType: Camera.DestinationType.FILE_URI,
  206. sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
  207. popoverOptions: new CameraPopoverOptions(300, 300, 100, 100, Camera.PopoverArrowDirection.ARROW_ANY)
  208. });
  209. // Reposition the popover if the orientation changes.
  210. window.onorientationchange = function() {
  211. var cameraPopoverOptions = new CameraPopoverOptions(0, 0, 100, 100, Camera.PopoverArrowDirection.ARROW_ANY);
  212. cameraPopoverHandle.setPosition(cameraPopoverOptions);
  213. }
  214. ## CameraPopoverOptions
  215. iOS だけ指定パラメーターをポップ オーバーのアンカー要素の場所および矢印方向計算されたライブラリまたはアルバムから画像を選択するとき。
  216. { x : 0,
  217. y : 32,
  218. width : 320,
  219. height : 480,
  220. arrowDir : Camera.PopoverArrowDirection.ARROW_ANY
  221. };
  222. #### 解説
  223. * **x**: ピクセルの x 座標画面要素にポップ オーバーのアンカーになります。*(数)*
  224. * **y**: y ピクセル座標の画面要素にポップ オーバーのアンカーになります。*(数)*
  225. * **width**: ポップ オーバーのアンカーになる上の画面要素のピクセル単位の幅。*(数)*
  226. * **height**: ポップ オーバーのアンカーになる上の画面要素のピクセル単位の高さ。*(数)*
  227. * **arrowDir**: 方向のポップ オーバーで矢印をポイントする必要があります。定義されている `Camera.PopoverArrowDirection` *(番号)*
  228. Camera.PopoverArrowDirection = {
  229. ARROW_UP : 1, // matches iOS UIPopoverArrowDirection constants
  230. ARROW_DOWN : 2,
  231. ARROW_LEFT : 4,
  232. ARROW_RIGHT : 8,
  233. ARROW_ANY : 15
  234. };
  235. 矢印の方向と、画面の向きを調整するポップ オーバーのサイズを変更可能性がありますに注意してください。 アンカー要素の位置を指定するときの方向の変化を考慮することを確認します。
  236. ## navigator.camera.cleanup
  237. 削除中間一時ストレージからカメラで撮影した写真。
  238. navigator.camera.cleanup( cameraSuccess, cameraError );
  239. #### 解説
  240. `camera.getPicture` を呼び出した後一時記憶域に保存されている中間画像ファイルを削除します。 `Camera.sourceType` の値が `Camera.PictureSourceType.CAMERA` に等しい、`Camera.destinationType` が `Camera.DestinationType.FILE_URI` と等しいの場合にのみ適用されます。.
  241. #### サポートされているプラットフォーム
  242. ![](doc/img/android-fail.png) ![](doc/img/blackberry-fail.png) ![](doc/img/browser-fail.png) ![](doc/img/firefox-fail.png) ![](doc/img/fireos-fail.png) ![](doc/img/ios-success.png) ![](doc/img/windows-fail.png) ![](doc/img/wp8-fail.png) ![](doc/img/ubuntu-fail.png)
  243. #### 例
  244. navigator.camera.cleanup(onSuccess, onFail);
  245. function onSuccess() {
  246. console.log("Camera cleanup success.")
  247. }
  248. function onFail(message) {
  249. alert('Failed because: ' + message);
  250. }