UIImage drawInRect: работает очень медленно; есть ли более быстрый способ?

Это именно то, что нужно, за исключением того, что это занимает около 400 миллисекунд, что на 350 миллисекунд слишком много:

 - (void) updateCompositeImage { //blends together the background and the sprites
    UIGraphicsBeginImageContext(CGSizeMake(480, 320));

    [bgImageView.image drawInRect:CGRectMake(0, 0, 480, 320)];

    for (int i=0;i<numSprites;i++) {
        [spriteImage[spriteType[i]] drawInRect:spriteRect[i] blendMode:kCGBlendModeScreen alpha:spriteAlpha[i]];
    }

    compositeImageView.image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();
}

Изображения довольно маленькие, и их всего три (цикл for повторяется только дважды)

Есть ли способ сделать это быстрее? Хотя все еще можно использовать kCGBlendModeScreen и альфа?

7
задан vladimir z 27 October 2011 в 05:29
поделиться