質問
画像上に小さな画像の束が付いた画像(本質的にスプライトを含む画像ストリップ)を含むUIImageがあります。 UIViewの領域に単一のスプライトを描画したいです。
UIImageの一部のみをビューに描画する方法が見つからないようです。これを行う方法はありますか?
解決
CGImageCreateWithImageInRect()。 同じ名前のプロパティ。
EDIT:2009年にはなかった2014年に存在する別のオプションは、 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-an-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];
}