Difference between revisions of "Camera.takePicture"

From GiderosMobile
m (Text replacement - "<source" to "<syntaxhighlight")
Line 5: Line 5:
 
=== Description ===
 
=== Description ===
 
Takes a picture.
 
Takes a picture.
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
(boolean) = camera.takePicture()
 
(boolean) = camera.takePicture()
 
</source>
 
</source>
Line 28: Line 28:
  
 
=== Example ===
 
=== Example ===
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
require "camera"
 
require "camera"
 
local cw,ch=512,512 --Preview requested size
 
local cw,ch=512,512 --Preview requested size

Revision as of 15:26, 13 July 2023

Available since: Gideros 2021.8
Class: camera

Description

Takes a picture. <syntaxhighlight lang="lua"> (boolean) = camera.takePicture() </source>

This function must be called while preview is active, that is Camera.start() has been called.

If it returns true, then the platform will asynchronously take a picture from the Camera (eventually using flash) then call Camera.onEvent callback one or more times.

It is your responsability to define Camera.onEvent before calling Camera.takePicture()

Camera.onEvent function takes two arguments:

  • a number, indicating the type of event
  • a data buffer (string) depending on the event type

Event types are:

  • 0: shutter sound is triggered, data is empty (if supported)
  • 1: uncompressed image ready, data contains the uncompressed image (android only, optional)
  • 2: jpeg image ready, data contains jpeg image. This event is always fired if takePicture() was successful

Return values

Returns (number) False if an error occured

Example

<syntaxhighlight lang="lua"> require "camera" local cw,ch=512,512 --Preview requested size local pw,ph=8192,8192 -- Request a very large picture, os will give us what it can do at best Camera.texture=RenderTarget.new(cw,ch,true) cw,ch,pw,ph=Camera.start(Camera.texture,dev,pw,ph) print("Using Camera Size:",cw,ch, "Picture:",pw,ph)

Core.asyncCall(function() Core.yield(1) --Wait one second Camera.setFlash(2) --Enable flash Camera.onEvent=function(evt,data) print("Event:",evt,"Data:",#data) end print("takePic",Camera.takePicture()) Camera.setFlash(0) --Set back flash to auto end) </source>