2014-02-27 32 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; 
}