使用Corona SDK的display.captureScreen()函数可以截取屏幕并稍后保存。

我正在使用display.capureScreen()来拍下用户的最终得分截图。 在此之后,一个窗口弹出,显示他们的硬币,得分,最高分以及刚刚拍下的照片。当我使用以下语句:

screenCap = display.captureScreen(true)

它会将照片保存到照片库中,因为它被设置为true。我的问题是,如何使用“保存照片”按钮,而不是自动保存它,以此让用户可以选择是否保存?

点赞
用户869951
用户869951

你可以使用display.save(object, filename)保存从captureScreen()返回的显示对象:

local image = display.captureScreen()
image:toBack() -- 隐藏它

... 做你想做的事情 ...

display.save( image, { filename="image.png", isFullResolution=true } )
image:removeSelf() -- 不再需要它
image = nil

在保存时,图像必须在显示层次结构中。

如果您想稍后保存到相册,则 display.save 不会给您该选项,您必须使用display.capturedisplay.captureBounds。例如:

local image = display.captureScreen()
image:toBack() -- 隐藏它

... 做你想做的事情 ...

local capture = display.capture( image, { saveToPhotoLibrary=true, isFullResolution=true } )
-- 清理
capture:removeSelf()
capture = nil
image:removeSelf()
image = nil
2014-04-12 02:09:31