Как сделать скриншот определенной пользователем прямоугольной области в cocos2d

Мне нужно сделать скриншот в моем cocos2d приложение. Я много искал, даже в переполнении стека. Затем я нашел следующий код:

+(UIImage*) screenshotWithStartNode:(CCNode*)stNode
{
    [CCDirector sharedDirector].nextDeltaTimeZero = YES;

    CGSize winSize = [[CCDirector sharedDirector] winSize];
    CCRenderTexture* renTxture = 
    [CCRenderTexture renderTextureWithWidth:winSize.width 
                                 height:winSize.height];
    [renTxture begin];
    [stNode visit];
    [renTxture end];

    return [renTxture getUIImage];
}

Сейчас,

Проблема: приведенный выше код дает мне весь скриншот. Но мне нужен скриншот кастома, например, в пределах CGRect(50,50,100,200),

Кто-нибудь может мне помочь, пожалуйста..? Спасибо...

1 ответ

Решение

Вау... узнал, что мне нужно. Я изменил вышеуказанный метод, как:

-(UIImage*) screenshotWithStartNode:(CCNode*)startNode
{
    [CCDirector sharedDirector].nextDeltaTimeZero = YES;

    CGSize winSize = [CCDirector sharedDirector].winSize;
    CCRenderTexture* rtx =
    [CCRenderTexture renderTextureWithWidth:winSize.width
                                     height:winSize.height];

    [rtx begin];
    [startNode visit];
    [rtx end];

    UIImage *tempImage = [rtx getUIImage];
    CGRect imageBoundary = CGRectMake(100, 100, 300, 300);

    UIGraphicsBeginImageContext(imageBoundary.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    // translated rectangle for drawing sub image
    CGRect drawRect = CGRectMake(-imageBoundary.origin.x, -imageBoundary.origin.y, tempImage.size.width, tempImage.size.height);

    // clip to the bounds of the image context
    CGContextClipToRect(context, CGRectMake(0, 0, imageBoundary.size.width, imageBoundary.size.height));

    // draw image
    [tempImage drawInRect:drawRect];

    // grab image
    UIImage* subImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return subImage;

}
Другие вопросы по тегам