モバイル・デバイスのカメラを使って写真を撮ったり、モバイル・デバイスの写真ライブラリにアクセスします。

プロパティ

Source

イメージのソース元を示す列挙値。有効なオプション:

CAM: カメラから写真を撮影

LIB: 写真ライブラリから写真を選択

EnableImage

デバイスの写真撮影の有効・無効を示すブール値です。

EnableVideo

デバイスのビデオ撮影の有効・無効を示すブール値です。

SaveToPhotoGallery

写真をギャラリーに保存するかどうかを示すブール値です。

ReturnBase64String

base64 エンコーディングの文字列としてイメージ・データを返すかどうかを示すブール値です。

ReturnFile

イメージまたはビデオ・ファイルのパスと URL を返すかどうかを示すブール値です。

AllowEdit

サイズ調整などイメージやビデオ・クリップの編集をユーザーに許可するかどうかを示すブール値です。編集機能はデバイスにより異なります。

EnableAnnotation

カメラで撮影したまたはアルバムからの写真にコメントを付けることができるかどうかを示すブール値です。

VideoQuality

ビデオの質レベルを選択する列挙値です。有効なオプション: LOW (低)、MED (中)、HIGH (高)

VideoMaxDuration

ビデオの長さの制限値を秒数で表す整数値です。無制限にするには 0 を設定します。

OutputPath

カメラによって作成されるファイルの完全修飾パスを示す文字列値です。

OutputFile (READONLY)

イメージまたはビデオのファイルの論理パスを含む文字列値です。

OutputUrl (READONLY)

イメージまたはビデオのファイルの URL を含む文字列値です。

IsImage (READONLY)

イメージが撮れたかどうかをユーザーに知らせるブール値です。

IsVideo (READONLY)

ビデオが撮れたかどうかをユーザーに知らせるブール値です。

ImageAsBase64Data (READONLY)

base64 としてエンコーディングされたイメージ・データを含む文字列値です。

メソッド

ActivateCamera

デバイスのカメラを有効にします。

  • 入力引数: なし
  • 出力引数: なし
  • 戻り値: 状態コード

SetImageSize

イメージのサイズを設定します。イメージの実際のサイズを設定するには、幅と高さに 0 を設定します。

  • 入力引数:

    名前

    タイプ

    必須

    説明

    Orientation

    列挙値

    はい

    サイズが特定の方向に適用されるかどうかを指定します。適用される場合、反対方向のサイズは入れ替えられます。
    有効な値: BOTH、PORT、LAND

    Width

    整数

    はい

    イメージの幅

    Height

    整数

    はい

    イメージの高さ

  • 出力引数: なし
  • 戻り値: なし

SetBase64ImageSize

base64 にエンコーディングされた時のイメージのサイズを指定します。イメージのサイズ設定を利用する場合、幅と高さに 0 を設定します。

  • 入力引数:

    名前

    タイプ

    必須

    説明

    Orientation

    列挙値

    はい

    サイズが特定の方向に適用されるかどうかを指定します。適用される場合、反対方向のサイズは入れ替えられます。
    有効な値: BOTH、PORT、LAND

    Width

    整数

    はい

    イメージの幅

    Height

    整数

    はい

    イメージの高さ

  • 出力引数: なし
  • 戻り値: なし

イベント

Completed

イメージ/ビデオが撮られた時に起動します。

  • パラメータ:

    名前

    タイプ

    説明

    Status

    列挙値

    状態コードを参照してください。

    Message

    文字列


サンプル・コード

推奨のコーディングは以下の通りです。ビデオを撮っている場合、データはファイルとして (ReturnFile := true) 戻し、ReturnBase64String に FALSE を設定します。

    Define_Com Class(#xDeviceCamera) Name(#CameraUse)

Evtroutine Handling(#COM_OWNER.Initialize)
#ActivateCamera.Enabled := false
Endroutine

Evtroutine Handling(#CameraUse.Initialize)
#ActivateCamera.Enabled := true
Endroutine

Evtroutine Handling(#ActivateCamera.Click)
#CameraUse.Source := CAM
#CameraUse.EnableImage := true
#CameraUse.EnableVideo := false
#CameraUse.SetImageSize( PORT #ImageSizeWidth.Value.AsInteger #ImageSizeHeight.Value.AsInteger )
#CameraUse.SaveToPhotoGallery := true
#CameraUse.ReturnBase64String := true
#CameraUse.SetBase64ImageSize( PORT #Base64Width.Value.AsInteger #Base64Height.Value.AsInteger )
#CameraUse.ReturnFile := true
#CameraUse.AllowEdit := false
#CameraUse.EnableAnnotation := true
#CameraUse.VideoQuality := HIGH
#CameraUse.VideoMaxDuration := #VideoMaxDuration.Value.AsNumber
#CameraUse.OutputPath := #OutputPath
#CameraUse.ActivateCamera()
Endroutine

Evtroutine Handling(#CameraUse.Completed) Status(#lstatus) Message(#message)
If (#lstatus = OK)   
#GeneratedFile := #CameraUse.OutputFile   
#GeneratedFileUrl := #CameraUse.OutputUrl   
If (#CameraUse.IsImage)     
#GeneratedType := 'Image'   
Else     
#GeneratedType := 'Video'   
Endif   

If (#CameraUse.ImageAsBase64Data <> "")     
#Base64 := #CameraUse.ImageAsBase64Data     
#LastImage.FileName := "data:image/png;base64," + #CameraUse.ImageAsBase64Data   
Endif
Else   
#Status := #message
Endif
#Status := #lstatus
Endroutine

Write to a local file (xDeviceFileWrite)
Define_Com Class(#xDeviceFileWrite) Name(#FileWriter

Evtroutine Handling(#COM_OWNER.Initialize)
#Write.Enabled := false
Endroutine

Evtroutine Handling(#FileWriter.Initialize)
#Write.Enabled := true
Endroutine

Evtroutine Handling(#Write.Click)
#FileWriter.FileName := '/recipes/appleStrudel'
#FileWriter.FileType := BIN
#FileWriter.FileEncoding := UTF8
#FileWriter.DataEncoding := BASE64
#FileWriter.Data := 'Add 3 eggs and 4 cups of sugar'
#FileWriter.Write()
Endroutine

Evtroutine Handling(#FileWriter.Completed) Status(#returnedStatus) Message(#message)
#Status := #returnedStatus
If (#Status <> OK)   
#StatusMessage := #message
Endif
Endroutine

Read a local file (xDeviceFileRead
Define_Com Class(#xDeviceFileRead) Name(#FileReader)

Evtroutine Handling(#COM_OWNER.Initialize)
#Read.Enabled := false
Endroutine

Evtroutine Handling(#FileReader.Initialize)
#Read.Enabled := true
Endroutine

Evtroutine Handling(#Read.Click)
#FileReader.FileName := '/recipes/chocolateCake'
#FileReader.FileType := TEXT
#FileReader.FileEncoding := UTF8
#FileReader.DataEncoding := NONE
#FileReader.Read()
Endroutine

Evtroutine Handling(#FileReader.Completed) Status(#returnedStatus) Data(#returnedData) Message(#message)
#Status := #returnedStatus
If (#Status = OK)   
#Data := #returnedData
Else   
#StatusMessage := #message
Endif
Endroutine
  • No labels