我有一個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