Need help with sprite-additions?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

r3econ
198 Stars 31 Forks Other 38 Commits 2 Opened issues

Description

UIImage Category for handling sprite sheets

Services available

!
?

Need anything else?

Contributors list

Build Status CodeFactor License Platform

UIImage Sprite Additions

Useful

UIImage
category for handling sprite sheets. This add-on smoothes the way of extracting images from a sprite sheet (texture atlas).

This can be useful in

UIImageView
animations where animationImages array has to be filled with a set of images representing frames.
UIImage-Sprite
category makes this process trivial by introducing two methods:
objective-c
- (NSArray *)spritesWithSpriteSheetImage:(UIImage *)image spriteSize:(CGSize)size;
- (NSArray *)spritesWithSpriteSheetImage:(UIImage *)image inRange:(NSRange)range spriteSize:(CGSize)size;

Quick start

Just copy

UIImage+Sprite.h
and
UIImage+Sprite.m
to your project or use CocoaPods to install the pod.

Instructions for CocoaPods users:

  1. Install CocoaPods with
    gem install cocoapods
    .
  2. Create a file in your XCode project called

    Podfile
    and add the following line:
    pod 'UIImage+SpriteAdditions'
    
  3. Run

    pod install
    in your xcode project directory. CocoaPods should download and install the
    UIImage+SpriteAdditions
    category, and create a new Xcode workspace. Open up this workspace in Xcode.

How to

There are two methods in

UIImage+SpriteAdditions
category. First one:
objective-c
- (NSArray *)spritesWithSpriteSheetImage:(UIImage *)image  spriteSize:(CGSize)size;
The method returns an array with
UIImage
objects. Original sprite sheet (image) is sliced into smaller chunks, each of the specified size.

Second method is very similar:

objective-c
- (NSArray *)spritesWithSpriteSheetImage:(UIImage *)image inRange:(NSRange)range spriteSize:(CGSize)size;
This method does exactly the same thing as the latter. However, this time we can specify the range of the chunks we want to get.

Note that for performance reasons you should not fire these methods every time you want to get the array of animation frames. You should rather fire it once and store the output array somewhere. This is because the

CoreGraphics
image manipulation operations (especially on large images) are not so fast and your application may slow down.

I wrote this add-on to facilitate the setup of short animations using

UIImageView
. For more complex animations I recommend using
OpenGLES
.

Demo

SpriteAnimationDemo
project presents the usage of the
UIImage+Sprite
methods. The example shows how to create an animated
UIImageView
. This cool explosion sprite sheet which I included in the demo can be found here. I added some numbers to this image to make testing and debugging easier.

Imgur

License

This code is distributed under the terms and conditions of the MIT license.

Copyright (c) 2011 Rafal Sroka

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.