昨天遇到一个用RenderTexture保存图片的问题,其实直接调用时可以保存当前屏幕大小的图片,但是当图片太大,比如5000*5000的时候,保存出来的图片只有一个角。然后就用到了这个方式来保存。
lua代码:
local w=5000
local h=5000
local render=cc.RenderTexture:create(w, h, cc.TEXTURE2_D_PIXEL_FORMAT_RGB_A8888)
--设置当前视口大小
local gl=cc.Director:getInstance():getOpenGLView()
gl:setFrameSize(w,h)
render:begin()
self.pos:visit()
render:endToLua()
render:saveToFile("aaa.jpg",kCCImageFormatJPEG)
--恢复视口
gl:setFrameSize(CC_DESIGN_RESOLUTION.width,CC_DESIGN_RESOLUTION.height)
如果不用这种方式,渲染图片的容器必须在屏幕的中心,熏染与中心点有关