Domanda

Ho un UIImage che contiene un'immagine con un intero gruppo di immagini più piccole sull'immagine (essenzialmente una striscia di immagine contenente sprite). Vorrei disegnare un singolo sprite su un'area del mio UIView.

Non riesco a trovare un modo per disegnare solo una parte di UIImage nella vista. Esiste un metodo per farlo?

È stato utile?

Soluzione

Penso che potresti cercare CGImageCreateWithImageInRect () . Puoi ottenere un CGImage da un UIImage con proprietà con lo stesso nome .

EDIT: un'altra opzione esistente nel 2014, che non è stata nel 2009, è SpriteKit . A seconda di cosa potresti fare che necessita di un foglio sprite, potrebbe essere utile.

Altri suggerimenti

Ho scritto una categoria UIImage per la gestione dei fogli sprite. Dai un'occhiata, potrebbe essere utile http: // reecon.wordpress.com/2011/11/19/uiimage-sprite-additions-objective-c/

Come notato in precedenza, questa categoria si basa su CGImageCreateWithImageInRect () ma rende il processo di estrazione degli sprite da un singolo foglio sprite più conveniente e più veloce .

Link alla pagina dell'hub git: https://github.com/r3econ/UIImage-Sprite-Additions

Puoi anche installare usando i baccelli di cacao.

Sì, puoi sicuramente farlo con Quartz.

C'è un tutorial qui che ti mostra come prendere un UIImage e mascherarne una parte.

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

Ecco il codice da quella pagina (nel caso in cui scenda per qualche motivo)

- (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];

}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top