Type Function Library display.* Return value none Revision Release 2024.3703 Keywords screenshot, capture screen, save screen See also display.capture() display.captureBounds() display.captureScreen()
Renders the display object referenced by first argument into a JPEG or PNG image and saves it as a new file. The display object must currently be in the display hierarchy or no image will be saved. If the object is a display group, all children are also rendered.
When content scaling is enabled, display.save()
saves the image in the device’s native resolution. For instance, if this method is used to save a 100×200 pixel display object, it may have more actual pixels when saved on a device with higher resolution.
When an app is suspended, the Android OS removes all OpenGL textures from memory. When the app is resumed, Corona must reload all images, but the capture image no longer exists in memory. You can’t use the display.save() function in Android "applicationSuspend"
and "applicationExit"
events because there are no OpenGL textures in memory to save.
If you need to save a display object on application launch, for example when main.lua
is executed to initialize the app, you must call display.save()
within a timer.performWithDelay() call. A delay of at least 100 milliseconds is recommended.
local function saveWithDelay() display.save( group, "group.jpg" ) end timer.performWithDelay( 100, saveWithDelay )
display.save( displayObject, options )
DisplayObject. The variable that references the display object/group to save.
Table. A table of options for the save — see the next section for details.
String. Name of the file to save as a JPEG or PNG.
Constant. One of the following values (system.DocumentsDirectory
is the default):
system.DocumentsDirectory
system.ApplicationSupportDirectory
system.TemporaryDirectory
system.CachesDirectory
Table. Table array with the background clear color to use. The table format can be one of the following, where each value ranges between 0
and 1
:
{ gray }
{ gray, alpha }
{ red, green, blue }
{ red, green, blue, alpha }
Boolean. If true
, the entire object/group is saved, even parts which are not visible on screen. If omitted, the save will be constrained to the screen bounds. For legacy compatibility purposes, the deprecated isFullResolution
option name can be used with the same effect.
Number. A value between 0
and 1
indicating the quality of the JPEG image that is saved. Has no affect on PNG. This only works on devices, not in the Corona Simulator.
display.save( displayObject, filename [, baseDir] )
DisplayObject. The variable that references the display object/group to save.
String. Name of the file to save as a JPEG or PNG.
Constant. One of the following values (system.DocumentsDirectory
is the default):
system.DocumentsDirectory
system.ApplicationSupportDirectory
system.TemporaryDirectory
system.CachesDirectory
local myObject1 = display.newRect( 50, 50, 100, 150 ) -- Create a rectangle object local myObject2 = display.newCircle( 100, 300, 50 ) -- Create a circle object local group = display.newGroup() group:insert( myObject1 ) group:insert( myObject2 ) display.save( group, { filename="entireGroup.png", baseDir=system.DocumentsDirectory, captureOffscreenArea=true, backgroundColor={0,0,0,0} } )