0

我必须截取所需屏幕组的屏幕截图,但它不起作用,并且全黑图像保存在文档目录中。如何保存屏幕截图?

local function takeSnapshot(event)
  timer.performWithDelay( 100, captureWithDelay )
end
function captureWithDelay()
  local baseDir = system.DocumentsDirectory
  display.save( stageGroup, "entireGroup.jpg", baseDir )
end
4

2 回答 2

2

我认为您使用的是较低版本的图形驱动器。在最新的 Mac 中尝试一下。

于 2013-08-02T12:03:11.440 回答
1

要保存显示组,您必须:

  • 首先创建一个display group.
  • 然后add屏幕对象到该组。
  • Return显示组
  • 用于display.save保存显示的整个组。

我在这里给出一个样本:

-- creating the display group --
local stageGroup = 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)

-- Then do as follows --
local function takePhoto()
    -- take screen shot to baseDirectory --
    local baseDir = system.DocumentsDirectory
    display.save( stageGroup, "myScreenshot.jpg", baseDir )
end
rect:addEventListener("tap",takePhoto)

注意:确保您已将要在屏幕截图中显示的对象添加到 stageGroup。

继续编码...... :)

于 2013-08-02T11:55:48.663 回答