Tôi đang cố tạo mặt nạ hình ảnh từ tổng hợp của hai hình ảnh hiện có.Tạo mặt nạ với CGImageMaskCreate là tất cả màu đen (iphone)
Trước tiên tôi bắt đầu với việc tạo ra các hỗn hợp trong đó bao gồm một hình ảnh nhỏ mà là hình ảnh mặt nạ, và một hình ảnh lớn hơn đó là kích thước tương tự như nền:
UIImage * BaseTextureImage = [UIImage imageNamed:@"background.png"];
UIImage * MaskImage = [UIImage imageNamed:@"my_mask.jpg"];
UIImage * ShapesBase = [UIImage imageNamed:@"largerimage.jpg"];
UIImage * MaskImageFull;
CGSize finalSize = CGSizeMake(480.0, 320.0);
UIGraphicsBeginImageContext(finalSize);
[ShapesBase drawInRect:CGRectMake(0, 0, 480, 320)];
[MaskImage drawInRect:CGRectMake(150, 50, 250, 250)];
MaskImageFull = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
tôi có thể sản lượng UIImage này (MaskImageFull) và nó có vẻ đúng, nó là một kích thước nền fullsize và nó là một nền trắng với đối tượng mặt nạ của tôi trong màu đen, ở đúng nơi trên màn hình.
sau đó tôi vượt qua MaskImageFull UIImage qua chuyện này:
CGImageRef maskRef = [maskImage CGImage];
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
UIImage* retImage= [UIImage imageWithCGImage:masked];
Vấn đề là các retImage là tất cả màu đen. Nếu tôi gửi một UIImage được tạo sẵn trong khi mặt nạ nó hoạt động tốt, nó chỉ là khi tôi cố gắng làm cho nó từ nhiều hình ảnh mà nó phá vỡ.
Tôi nghĩ đó là một điều không gian màu nhưng dường như không thể khắc phục được. Bất kỳ sự giúp đỡ nào cũng được đánh giá cao!
Đã giúp tôi rất nhiều.Bạn có thể thêm đầu trang và chân trang của hàm để làm cho nó hoàn chỉnh không? – Eden
thumbnailPoint.x chính xác là gì ??! @catlan –
@ Reza.Ab xin lỗi tôi không nhớ. thu nhỏ * cũng có vẻ kỳ lạ 9 năm sau đó. Tôi giả định trong hầu hết các trường hợp mặt nạ rect và hình ảnh rect nên giống nhau. Hãy thử nó và cho chúng tôi biết những gì bạn tìm thấy, – catlan