Pergunta

Eu tenho um UIImage contendo uma imagem com um monte de pequenas imagens na imagem (essencialmente uma faixa de imagens contendo sprites). Eu gostaria de desenhar um único Sprite para uma área do meu UIView.

Eu não consigo encontrar uma maneira desenhar apenas parte do UIImage para a vista. Existe um método que faz isso?

Foi útil?

Solução

Eu acho que você pode estar à procura de CGImageCreateWithImageInRect () . Você pode obter uma CGImage de um UIImage com o propriedade de mesmo nome .

EDIT: outra opção que existe em 2014, que não o fez em 2009, é SpriteKit . Dependendo do que você poderia estar fazendo que precisa de uma folha de sprite, que pode ser útil.

Outras dicas

Eu escrevi uma categoria UIImage para manusear folhas de sprite. Verificar isso, pode ser útil http: // reecon.wordpress.com/2011/11/19/uiimage-sprite-additions-objective-c/

Como observado anteriormente, esta categoria bases sobre CGImageCreateWithImageInRect() mas torna o processo de extração de sprites de uma única folha de sprite muito mais conveniente e mais rápido .

Link para a página hub git: https://github.com/r3econ/UIImage-Sprite-Additions

Você também pode instalar usando vagens de cacau.

Sim, com certeza você pode com Quartz.

Há um tutorial aqui que mostra como tomar um UIImage e mascarar uma parte dela.

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

Aqui está o código a partir dessa página (incase ele vai para baixo por alguma razão)

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

}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top