display.captureBounds
有利于将整个屏幕保存到目录中。但它通常会随着最后一个索引的增加来保存文件。所以可能很难正确阅读它们。所以我更喜欢display.save
. 但这不是一条直截了当的方法。
为此,您必须:
- 首先创建一个
displayGroup
.
- 然后
add
屏幕对象到该组。
Return
显示组。
- 用于
display.save
保存显示的整个组。
- 显示所需的图像
system.DocumentsDirectory
。
我在这里给出一个样本:
-- creating the display group --
local localGroup = display.newGroup()
-- creating display objects and adding it to the group --
local bg = display.newRect(0,0,_w,_h)
bg.x = 160
bg.y = 240
bg:setFillColor(150)
localGroup:insert(bg)
local rect = display.newRect(0,0,50,50)
rect.x = 30+math.random(260)
rect.y = 30+math.random(420)
localGroup:insert(rect)
-- Take Screenshot --
local function saveGroupImages()
-- take screen shot to baseDirectory --
local baseDir = system.DocumentsDirectory
display.save( localGroup, "myScreenshot.jpg", baseDir )
end
rect:addEventListener("tap",saveGroupImages)
在此之后,您可以读取文件并显示如下:
local readImage = display.newImage( "myScreenshot.jpg" ,system.DocumentsDirectory , 50, 100 )
readImage.x = 160
readImage.y = 240
readImage:scale(0.5,0.5)
继续编码............ :)