[英]How to remove UIImage Background color and make it transparent?
我想刪除 UIImage 背景顏色並使其透明...
我試過了,但下面的代碼只是將白色背景顏色更改為黑色。
UIImage* createColorMaskedImage(UIImage* originalImage){
float maskingColors[6] = {0xEE, 0xFF, 0xEE, 0xFF, 0xEE, 0xFF};
CGImageRef maskedImageRef = CGImageCreateWithMaskingColors(originalImage.CGImage, maskingColors);
UIImage* maskedImage = [UIImage imageWithCGImage:maskedImageRef];
CGImageRelease(maskedImageRef);
return maskedImage;
}
UIImage *watchImage = [UIImage imageNamed:@"watch2.jpg"];
// Mask image
colorMaskImage_ = createColorMaskedImage(watchImage);
//create image view and set its poistion.
UIImageView* maskImageView = [[UIImageView alloc] initWithImage:colorMaskImage_];
CGRect frame = maskImageView.frame;
frame.origin = CGPointMake(80,60);
maskImageView.frame = frame;
maskImageView.backgroundColor = [UIColor clearColor];
[self.view addSubview:maskImageView];
[maskImageView release];
迅捷版
func makeTransparent(image: UIImage) -> UIImage? {
guard let rawImage = image.cgImage else { return nil}
let colorMasking: [CGFloat] = [255, 255, 255, 255, 255, 255]
UIGraphicsBeginImageContext(image.size)
if let maskedImage = rawImage.copy(maskingColorComponents: colorMasking),
let context = UIGraphicsGetCurrentContext() {
context.translateBy(x: 0.0, y: image.size.height)
context.scaleBy(x: 1.0, y: -1.0)
context.draw(maskedImage, in: CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height))
let finalImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return finalImage
}
return nil
}
您的watch2.jpg
可能沒有 alpha 值,這將使它具有透明區域。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.