Вопрос

У меня есть UIImage, содержащий изображение с целой кучей небольших изображений на изображении (по сути, полоса изображений, содержащая спрайты).Я хотел бы нарисовать один спрайт в области моего UIView.

Кажется, я не могу найти способ нарисовать в представлении только часть UIImage.Есть ли метод, который делает это?

Это было полезно?

Решение

Я думаю, что вы можете искать / TP30001066-CH212-SW1 "rel =" nofollow noreferrer "> CGImageCreateWithImageInRect () . Вы можете получить CGImage из UIImage с помощью одноименное свойство .

РЕДАКТИРОВАТЬ: еще один вариант, который существует в 2014 году, а не в 2009 году - это SpriteKit . В зависимости от того, что вы делаете, вам нужен спрайт-лист, это может быть полезно.

Другие советы

Я написал UIImage категория для работы с листами спрайтов.Проверьте это, это может быть полезно http://reecon.wordpress.com/2011/11/19/uiimage-sprite-additions-objective-c/

Как отмечалось ранее, эта категория основана на CGImageCreateWithImageInRect() но делает процесс извлечения спрайтов из одного листа спрайтов далеко более удобно и Быстрее.

Ссылка на страницу git-хаба:https://github.com/r3econ/UIImage-Sprite-Additions

Вы также можете установить с помощью какао-стручков.

Да, конечно, вы можете с Quartz.

Здесь есть учебник, который показывает, как взять UIImage и замаскировать его часть.

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

Вот код с этой страницы (если он почему-то не работает)

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

}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top