You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

モバイル・デバイスのカメラを使って写真を撮ったり、モバイル・デバイスの写真ライブラリにアクセスします。
プロパティ
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