cocos2dx-lua3.12版本保存图片、截屏显示

保存图片到本地:

--[[

下面代码的意思是将大图plist文件中的分离出来,并保存到沙盒目录下

]]

local size = cc.Director:getInstance():getVisibleSize()

local plistFile = "" --你的plist路径

local pngFile = "" --你的大图路径

cc.SpriteFrameCache:getInstance():addSpriteFrames(plistFile) --加载图片进内存

local vectormap = cc.FileUtils:getInstance():getValueMapFromFile(plistFile) --读取plist

local frames = vectormap.frames

local writablePath = cc.FileUtils:getInstance():getWritablePath()

print("writablePath is %s",writablePath)

for key,value in pairs(frames) do

local str = key --获得plist内的图片

local spr = cc.Sprite:createWithSpriteFrameName(str)

local size = spr:getContentSize()

local render = cc.RenderTexture:create(size.width,size.height)

spr:setPosition(cc.p(size.width / 2,size.height / 2))

render:begin()

spr:visit()

render:endToLua()

ender:savetoFile(str,cc.IMAGE_FORMAT_PNG) --写到文件

print("save " .. str .. " to ".. writablePath .. str)

end


截屏显示

local size = cc.Director:getInstance():getVisibleSize()

local function afterCaptured(succeed,outputFile)

if succeed then

local outputSprite = cc.Sprite:create(outputFile)

outputSprite:setPosition(cc.p(size.width/2,size.height/2))

self:addChild(outputSprite,10)

outputSprite:setScale(0.5)

else

print("Capture screen @R_502_4761@.")

end

end


local screen = cc.MenuItemFont:create("SCREEN")

screen:setPosition(cc.p(size.width-100,size.height-100))

local menu = cc.Menu:create(screen)

menu:setPosition(cc.p(0,0))

menu:setAnchorPoint(cc.p(0,0))

self:addChild(menu)

local function menuCallBack(pSender)

cc.utils:captureScreen(afterCaptured,"screen.png")

end

screen:registerScriptTapHandler(menuCallBack)

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...