Tôi mới sử dụng Quartz. Tôi có 2 hình ảnh, một nền và một mặt nạ với hình dạng bỏ đi mà tôi muốn đặt trên nền để cắt ra một phần. Các hình ảnh kết quả nên được hình dạng của cutout. Đây là mặt nạ của tôi (hình ở giữa là 0 alpha):CGContextClipToMask trả về ảnh trống
Và đây là mã của tôi:
UIView *canvas = [[[sender superview] subviews] objectAtIndex:0];
UIGraphicsBeginImageContext(canvas.bounds.size);
CGColorSpaceRef colourSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef cgContext = CGBitmapContextCreate(NULL, canvas.bounds.size.width, canvas.bounds.size.height, 8, 0, colourSpace, kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(colourSpace);
CGImageRef maskImage = [[UIImage imageNamed:@"Mask.png"] CGImage];
CGContextClipToMask(cgContext, CGRectMake(0, 0, canvas.frame.size.width, canvas.frame.size.height), maskImage);
CGImageRef maskedImageRef = CGBitmapContextCreateImage(cgContext);
CGContextRelease(cgContext);
UIImage *maskedImage = [UIImage imageWithCGImage:maskedImageRef];
UIGraphicsEndImageContext();
[button setBackgroundImage:maskedImage forState:UIControlStateNormal];
Trừ gì xuất hiện ... Bất cứ ý tưởng nơi tôi sẽ sai rồi? Cảm ơn nhiều.
Bạn không dường như rút ra bất cứ điều gì. Bạn cắt ra không có gì từ không có gì, và không có gì. Như mong đợi. Giữa việc cắt mặt nạ và tạo hình ảnh, bạn nên vẽ một thứ gì đó. –