Difference between revisions of "Camera.takePicture"

From GiderosMobile
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
<languages />
+
'''Available since:''' Gideros 2021.8<br/>
'''<translate>Available since</translate>:''' Gideros 2021.8<br/>
+
'''Class:''' [[camera]]<br/>
'''<translate>Class</translate>:''' [[Special:MyLanguage/camera|camera]]<br/>
+
 
=== <translate>Description</translate> ===
+
=== Description ===
Take a picture.
+
Takes a picture.
 +
<source lang="lua">
 +
(boolean) = camera.takePicture()
 +
</source>
 +
 
 
This function must be called while preview is active, that is Camera.start() has been called.
 
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. <br/>
+
 
It is your responsability to define Camera.onEvent before calling Camera.takePicture().
+
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:
 
Camera.onEvent function takes two arguments:
 
* a number, indicating the type of event
 
* a number, indicating the type of event
Line 13: Line 20:
  
 
Event types are:
 
Event types are:
* 0: shutter sound is triggered, data is empty (if supported)
+
* '''0''': shutter sound is triggered, data is empty (if supported)
* 1: uncompressed image ready, data contains the uncompressed image (android only, optional)
+
* '''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
+
* '''2''': jpeg image ready, data contains jpeg image. This event is always fired if takePicture() was successful
<source lang="lua">
 
(boolean) = camera.takePicture()
 
</source>
 
  
=== <translate>Parameters</translate> ===
+
=== Return values ===
=== <translate>Return values</translate> ===
+
'''Returns''' (number) False if an error occured<br/>
'''<translate>Returns</translate>''' (number) <translate>False if an error occured</translate><br/>
 
  
=== <translate>Examples</translate> ===
+
=== Example ===
'''Example'''<br/>
+
<source lang="lua">
<source lang="lua">require "camera"
+
require "camera"
 
local cw,ch=512,512 --Preview requested size
 
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
 
local pw,ph=8192,8192 -- Request a very large picture, os will give us what it can do at best

Revision as of 07:22, 11 June 2023

Available since: Gideros 2021.8
Class: camera

Description

Takes a picture.

(boolean) = camera.takePicture()

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

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)