Difference between revisions of "Camera.takePicture"
From GiderosMobile
| Line 23: | Line 23: | ||
=== <translate>Return values</translate> ===  | === <translate>Return values</translate> ===  | ||
'''<translate>Returns</translate>''' (number) <translate>False if an error occured</translate><br/>  | '''<translate>Returns</translate>''' (number) <translate>False if an error occured</translate><br/>  | ||
| + | |||
| + | === <translate>Examples</translate> ===  | ||
| + | '''Example'''<br/>  | ||
| + | <source 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>  | ||
{{Camera}}  | {{Camera}}  | ||
Revision as of 15:18, 18 August 2021
Available since: Gideros 2021.8
Class: camera
Description
Take a picture.
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
 
(boolean) = camera.takePicture()
Parameters
Return values
Returns (number) False if an error occured
Examples
Example
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)