2014-02-27 69 views
0

我正在嘗試開發一個簡單的遊戲。但後來,我遇到了這個問題,我的UIImage。 當我導入一張圖片時,我在這個球上得到了這個煩人的背景,而不僅僅是球本身。所以當我玩這個球時,這個背景必須匹配UIView的顏色,否則它看起來很奇怪。我該如何解決這個問題?如何在所需的形狀中裁剪圖像

+0

哪裏是你的形象? – Jing

+0

我的圖像位於支持文件中。你想讓我在這裏上傳實際圖片嗎?這只是一個帶有白色背景色的簡單黑球。 – chanpkr

+1

爲什麼不使用透明背景的黑球?這很容易 – Jing

回答

0

您可以使用下面的代碼來獲得一個面罩形狀像帶着面具:

//beCroppedImage is the image be cropped, maskImage is a image with a white background color and a black sharp that ever you want. 
theShapeImage = [beCroppedImage maskImageWithMask:maskImage]; 



- (UIImage *)maskImageWithMask:(UIImage*)mask { 
    CGImageRef imgRef = [self CGImage]; 
    CGImageRef maskRef = [mask CGImage]; 
    CGImageRef actualMask = CGImageMaskCreate(CGImageGetWidth(maskRef), 
               CGImageGetHeight(maskRef), 
               CGImageGetBitsPerComponent(maskRef), 
               CGImageGetBitsPerPixel(maskRef), 
               CGImageGetBytesPerRow(maskRef), 
               CGImageGetDataProvider(maskRef), NULL, false); 
    CGImageRef masked = CGImageCreateWithMask(imgRef, actualMask); 
    UIImage *image = [UIImage imageWithCGImage:masked]; 
    CGImageRelease(masked); 
    CGImageRelease(actualMask); 
    return image; 
}