我有一个UIImage包含一个图像与图像上的一大堆小图片(本质上是一个包含精灵的图像条)。我想绘制一个单一的精灵到我的UIView区域。绘制UIImage的选定区域
我似乎无法找到一种方法只将部分UIImage绘制到视图上。有没有这样的方法?
我有一个UIImage包含一个图像与图像上的一大堆小图片(本质上是一个包含精灵的图像条)。我想绘制一个单一的精灵到我的UIView区域。绘制UIImage的选定区域
我似乎无法找到一种方法只将部分UIImage绘制到视图上。有没有这样的方法?
我想你可能会寻找CGImageCreateWithImageInRect()。您可以从UIImage
与property of the same name获得CGImage
。
编辑:存在于2014年的另一个选项是2009年没有的SpriteKit。根据你可能需要做什么需要一个精灵表,这可能是有用的。
是的,你确定可以用石英。
这里有一个教程,告诉你如何获取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];
}
这是很棒的东西,我一定会收藏它,但我不想为此创建一个蒙版。我只是想做一些事情:[[UIImage imageNamed:@“myimage”] drawInRect:CGMakeRect(10,10,50,50)fromRect:CGMakeRect(60,60,50,50)]; – rein 2009-10-26 21:10:00
我写了一个UIImage
类处理精灵表。检查了这一点,它可能有助于http://reecon.wordpress.com/2011/11/19/uiimage-sprite-additions-objective-c/
正如前面提到的,这一类基础上CGImageCreateWithImageInRect()
但使从一个单一的精灵表远更方便和更快提取精灵的过程。
链接到git的枢纽页: https://github.com/r3econ/UIImage-Sprite-Additions
您还可以安装使用可可豆荚。
谢谢,现在就试试这个。 – rein 2009-10-26 21:11:59
好的@Sixten,我觉得这听起来更像他想要的+1 – 2009-10-26 21:13:42
完美的作品(减去CGImages在绘图时被翻转的一些令人头痛的问题)。谢谢。 – rein 2009-10-26 21:49:14