Question

J'ai un UIImage contenant une image avec tout un tas d’images plus petites sur l’image (essentiellement une bande d’images contenant des sprites). Je voudrais dessiner un seul sprite sur une zone de mon UIView.

Je n'arrive pas à trouver un moyen d'attirer seulement une partie de UIImage sur la vue. Y at-il une méthode qui fait cela?

Était-ce utile?

La solution

Je pense que vous recherchez peut-être CGImageCreateWithImageInRect () . Vous pouvez obtenir une CGImage à partir d'un UIImage avec propriété du même nom .

EDIT: une autre option disponible en 2014, mais pas en 2009, est SpriteKit . Selon ce que vous pourriez faire et qui nécessite une feuille de sprite, cela pourrait être utile.

Autres conseils

J'ai écrit une catégorie UIImage pour la gestion des feuilles de sprite. Jetez-y un coup d'œil, cela pourrait être utile http: // reecon.wordpress.com/2011/11/19/uiimage-sprite-additions-objective-c/

Comme indiqué précédemment, cette catégorie est basée sur CGImageCreateWithImageInRect () , mais rend le processus d’extraction des sprites d’une feuille de sprite unique plus pratique et plus rapide .

Lien vers la page du hub git: https://github.com/r3econ/UIImage-Sprite-Additions

Vous pouvez également installer des cosses de cacao.

Oui, vous pouvez certainement avec Quartz.

Il y a un tutoriel ici qui vous montre comment prendre un UIImage et en masquer une partie.

http://iosdevelopertips.com/cocoa/how-to -mask-an-image.html

Voici le code de cette page (au cas où il tombe pour une raison quelconque)

- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {

    CGImageRef maskRef = maskImage.CGImage; 

    CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
        CGImageGetHeight(maskRef),
        CGImageGetBitsPerComponent(maskRef),
        CGImageGetBitsPerPixel(maskRef),
        CGImageGetBytesPerRow(maskRef),
        CGImageGetDataProvider(maskRef), NULL, false);

    CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
    return [UIImage imageWithCGImage:masked];

}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top