类型 函数 库 display.* 返回值 无 修订 版本 2024.3703 关键词 屏幕截图,屏幕捕获,保存屏幕 另请参阅 display.capture() display.captureBounds() display.captureScreen()
将第一个参数引用的显示对象渲染为 JPEG 或 PNG 图像,并将其保存为新文件。显示对象当前必须位于显示层次结构中,否则不会保存图像。如果对象是显示组,则所有子对象也会被渲染。
启用内容缩放时,display.save() 会以设备的原始分辨率保存图像。例如,如果使用此方法保存 100×200 像素的显示对象,则在分辨率较高的设备上保存时,它可能具有更多实际像素。
当应用暂停时,Android 操作系统会从内存中移除所有 OpenGL 纹理。当应用恢复时,Corona 必须重新加载所有图像,但捕获的图像不再存在于内存中。您不能在 Android "applicationSuspend" 和 "applicationExit" 事件中使用 display.save() 函数,因为内存中没有要保存的 OpenGL 纹理。
如果您需要在应用程序启动时保存显示对象,例如在执行 main.lua 来初始化应用程序时,则必须在 timer.performWithDelay() 调用中调用 display.save()。建议至少延迟 100 毫秒。
local function saveWithDelay()
display.save( group, "group.jpg" )
end
timer.performWithDelay( 100, saveWithDelay )
display.save( displayObject, options )
DisplayObject. 引用要保存的显示对象/组的变量。
表. 保存选项的表 — 有关详细信息,请参阅下一节。
字符串. 要保存为 JPEG 或 PNG 的文件名。
常量. 以下值之一(system.DocumentsDirectory 为默认值)
system.DocumentsDirectorysystem.ApplicationSupportDirectorysystem.TemporaryDirectorysystem.CachesDirectory表. 包含要使用的背景清除颜色的表数组。表格式可以是以下之一,其中每个值的范围在 0 到 1 之间
{ gray }{ gray, alpha }{ red, green, blue }{ red, green, blue, alpha }布尔值. 如果为 true,则保存整个对象/组,即使屏幕上不可见的部分也会保存。如果省略,则保存将限制在屏幕边界内。出于旧版兼容性目的,可以使用已弃用的 isFullResolution 选项名称,其效果相同。
数字. 指示保存的 JPEG 图像质量的值,介于 0 和 1 之间。对 PNG 没有影响。这仅适用于设备,不适用于 Corona Simulator。
display.save( displayObject, filename [, baseDir] )
DisplayObject. 引用要保存的显示对象/组的变量。
字符串. 要保存为 JPEG 或 PNG 的文件名。
常量. 以下值之一(system.DocumentsDirectory 为默认值)
system.DocumentsDirectorysystem.ApplicationSupportDirectorysystem.TemporaryDirectorysystem.CachesDirectorylocal 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} } )