0
我正在用xcode爲iPhone創建遊戲。我有一個起始圖像,我想從中獲得第二張圖像,其中有一些(四個)透明區域,例如就像這樣:如何在UIImage中創建透明區域?
的問題是,我不知道如何去實現它;我有辦法處理原始圖像並從中剪切區域嗎?或者讓我創建一個新的圖像,我只放置原始圖像中的可見部分? 任何建議或片段將非常感激。
我正在用xcode爲iPhone創建遊戲。我有一個起始圖像,我想從中獲得第二張圖像,其中有一些(四個)透明區域,例如就像這樣:如何在UIImage中創建透明區域?
的問題是,我不知道如何去實現它;我有辦法處理原始圖像並從中剪切區域嗎?或者讓我創建一個新的圖像,我只放置原始圖像中的可見部分? 任何建議或片段將非常感激。
那麼,我會通過創建自定義UIView子類並使用其drawRect方法來繪製該部分。 佛例如:
- (空)的drawRect :(
CGRect)rect
{
[super drawRect:rect];
CGContextRef ctx = UIGraphicsGetCurrentContext(); // get drawing context
CGContextSaveGState(ctx); //remember current state
CGContextClipToRect(ctx, CGRectMake(0, 0, 100, 100)); //set clipping
CGContextDrawImage(ctx, CGRectMake(0, 0, img.size.width, img.size.height), img.CGImage);
CGContextRestoreGState(ctx); //restore state, so the previous clipping will be canceled
CGContextSaveGState(ctx);
CGContextClipToRect(ctx, CGRectMake(100, 100, 100, 100));
CGContextDrawImage(ctx, CGRectMake(0, 0, img.size.width, img.size.height), img.CGImage);
CGContextRestoreGState(ctx);
}
這將引起兩個小rects在這段代碼IMG是一個UIImage的
然而,這是應該做的最簡單的方法。這不是最有效的 - 它需要重繪每一部分,你可能想要檢查CGContextClipToRects和CGContextClip函數,使它更高效和更靈活
哦,非常感謝,它的工作原理(即使兩個小矩形出現顛倒......)無論如何,一個非常好的撻點;) – xabaras78
我解決了它取代CGContextDrawImage與[img drawAtPoint:CGPointMake(0,0)] ... :) – xabaras78