首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从CCSprite,CCTexture2D甚至直接从CCSpriteFrameCache获取CGImageRef?

从CCSprite,CCTexture2D甚至直接从CCSpriteFrameCache获取CGImageRef?
EN

Stack Overflow用户
提问于 2012-03-01 14:43:15
回答 3查看 1.9K关注 0票数 0

我已经编写了一些代码来获取UIImage.CGImageRef并将其放入上下文中,以便我可以对其进行分析。这一切都很好用。但是,我现在希望在Cocos2D应用程序中实现此过程。

我的所有应用程序的图形都完成了精灵使用纹理打包机,所以我正在寻找任何方法,以获得我需要的CGImageRef出精灵工作表。

我的理论是你可以用CGImageRef初始化一个CCSprite,那么为什么我不能简单地把它再取出来呢?

也许我漏掉了一些简单的东西,比如Cocos2D是否有CGImageRef等效项?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-01 18:19:49

你可以像这样试一下smth

代码语言:javascript
复制
    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];
票数 1
EN

Stack Overflow用户

发布于 2012-03-01 15:26:39

您可以通过glReadPixels从OpenGL获取图片数据。它需要一些调整,但在性能方面将是错误的解决方案。OpenGL被设计为单向传输器(您传递数据,而不是读回它)。根据您的具体任务,您可以在从文件加载纹理时预加载图像数据。

例如,我们使用纹理的alpha通道进行单像素触摸测试。因此,当我们加载图像时,我们将其alpha阈值的位掩码存储在内存中。

票数 0
EN

Stack Overflow用户

发布于 2012-03-01 23:47:24

没有cctexture直接从CCTextureCache sharedTextureCache读取照片文件ccspriteframe直接从CCSpriteFrameCache sharedSpriteFrameCache读取".plist“文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9511775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档