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

Compare with Current View Page History

Version 1 Next »

Show Contents List
You are here:

14.6.3 xDeviceCamera Widget

Use the camera on mobile device to take photos or access the photo library on mobile device.
Properties
Source
An enum value indicates where the image is sourced. Valid options:
CAM: take photo from camera
LIB: select photo from photo library
EnableImage
A Boolean value indicates if enable or disable the device to take a photo.
EnableVideo
A Boolean value indicates if enable or disable the device to take a video.
SaveToPhotoGallery
A Boolean value indicates if the photo should be saved to the gallery.
ReturnBase64String
A Boolean value indicates if return the image data as a base64 encoded string.
ReturnFile
A Boolean value specifies whether return the path and URL of the image or video file.
AllowEdit
A Boolean value indicates whether allow users to do some editing on the image or video clip like scaling. The editing features are device specific.
EnableAnnotation
A Boolean value indicates whether allow annotation on photo taken from camera or album
VideoQuality
An enum value to select quality level of the video. Valid options:LOW,MED,HIGH
VideoMaxDuration
An integer value specifies the limit length of video to this number of seconds. Set value to 0 for no maximum.
OutputPath
A string value specifies a fully qualified path of the file that will be created by the camera.
OutputFile (READONLY)
A string value contains the logical path of the image or video file.
OutputUrl (READONLY)
A string value contains the URL of the image or video file
IsImage (READONLY)
A Boolean value that tell user if an image has been taken
IsVideo (READONLY)
A Boolean value that tell user if a video has been recorded.
ImageAsBase64Data (READONLY)
A string value that contains the image data encoded as base64.
Methods
ActivateCamera
Activate the camera on the device.

  • Input Arguments: None
  • Output Argument: None.
  • Return Value: Status Code

SetImageSize
Set the size of image. For actual image size, set width and height to 0.

  • Input Arguments:

    Name

    Type

    Mandatory

    Description

    Orientation

    Enum

    Yes

    Specify whether the size applies to a specific orientation. If so, the size will be flipped for the alternate orientation.
    Valid values are: BOTH, PORT, LAND

    Width

    Integer

    Yes

    Image width

    Height

    Integer

    Yes

    Image height

     |
  • Output Argument: None.
  • Return Value: None.

SetBase64ImageSize
Specify the size of the image when it is encoded for base64. To use the image size settings, set width and height to 0.

  • Input Arguments:

    Name

    Type

    Mandatory

    Description

    Orientation

    Enum

    Yes

    Specify whether the size applies to a specific orientation. If so, the size will be flipped for the alternate orientation.
    Valid values are: BOTH, PORT, LAND

    Width

    Integer

    Yes

    Image width

    Height

    Integer

    Yes

    Image height

     |
  • Output Argument: None.
  • Return Value: None.

Events
Completed
Triggered when an image/video has been taken/recorded.

  • Parameters:

    Name

    Type

    Description

    Status

    Enum

    See Status Code

    Message

    String

     

     |
    Code Examples
    Recommended code: If taking a video, return the data as a file (ReturnFile := true) and set ReturnBase64String to 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  
    Show Contents List
  • No labels