我已经编写了一些代码来获取UIImage.CGImageRef并将其放入上下文中,以便我可以对其进行分析。这一切都很好用。但是,我现在希望在Cocos2D应用程序中实现此过程。
我的所有应用程序的图形都完成了精灵使用纹理打包机,所以我正在寻找任何方法,以获得我需要的CGImageRef出精灵工作表。
我的理论是你可以用CGImageRef初始化一个CCSprite,那么为什么我不能简单地把它再取出来呢?
也许我漏掉了一些简单的东西,比如Cocos2D是否有CGImageRef等效项?
发布于 2012-03-01 18:19:49
你可以像这样试一下smth
CCRenderTexture *renderer = [CCRenderTexture renderTextureWithWidth:size.width height:size.height];
[renderer begin];
CCSpriteBatchNode *spriteSheet = [m_sprite batchNode];
if (spriteSheet != nil)
[spriteSheet visit];
else
[m_sprite visit];
[renderer end];
NSData* uidata = [renderer getUIImageAsDataFromBuffer:kCCTexture2DPixelFormat_RGBA8888];
UIImage* uiimage = [UIImage imageWithData:uidata];
CGImageRef image = [uiimage CGImage];发布于 2012-03-01 15:26:39
您可以通过glReadPixels从OpenGL获取图片数据。它需要一些调整,但在性能方面将是错误的解决方案。OpenGL被设计为单向传输器(您传递数据,而不是读回它)。根据您的具体任务,您可以在从文件加载纹理时预加载图像数据。
例如,我们使用纹理的alpha通道进行单像素触摸测试。因此,当我们加载图像时,我们将其alpha阈值的位掩码存储在内存中。
发布于 2012-03-01 23:47:24
没有cctexture直接从CCTextureCache sharedTextureCache读取照片文件ccspriteframe直接从CCSpriteFrameCache sharedSpriteFrameCache读取".plist“文件
https://stackoverflow.com/questions/9511775
复制相似问题