如何将CCSprite转换为UIImage

时间:2013-08-20 08:26:23

标签: ios objective-c cocos2d-iphone uiimage ccsprite

我想将CCSprite转换为UIImage。我写了一个简单的测试项目。但是,我发现它不起作用。尽管图像尺寸合适,但UIImage无法在屏幕上显示。你能告诉我原因吗?

测试项目的URL如下:https://github.com/HelloVicent/ConverCCSpriteTOUIImage

非常感谢。

1 个答案:

答案 0 :(得分:6)

以下是如何将CCSprite转换为UIImage的解决方案:

http://www.cocos2d-iphone.org/forums/topic/convert-ccspriteframe-to-uiimage-is-this-possible/

在这里看看,看看它是否可以帮到你。

这是论坛的解决方案(上面的链接):


只需创建一个sprite,就像你通常使用spritesheets一样:

CCSprite *sprite = [CCSprite spriteWithSpriteFrameName:@"thumbnail5.png"];

然后使用此方法从精灵获取UIImage

- (UIImage *) renderUIImageFromSprite  CCSprite *)sprite 
{
    int tx = sprite.contentSize.width;
    int ty = sprite.contentSize.height;

    CCRenderTexture *renderer    = [CCRenderTexture renderTextureWithWidth:tx height:ty];

    sprite.anchorPoint  = CGPointZero;

    [renderer begin];
    [sprite visit];
    [renderer end];

    return [renderer getUIImageFromBuffer];
}

这样的调用方法:

UIImage *img = [self renderUIImageFromSprite:sprite];