J'ai pris un exemple de code à l'adresse suivante: how to mask an image afin de masquer une image.Problème lors du masquage UIImage
Le code fonctionne parfaitement sur le simulateur iPhone, mais ne fonctionne pas correctement sur iPhone 4 simulateur (c'est quand des images haute résolution sont chargés ...)
Voici mon code et la fonction de masque:
- (void)someMethod {
UIImage* image = [UIImage imageNamed:@"image.png"]; // [email protected] is loaded for high-res device
UIImage* mask = [UIImage imageNamed:@"mask.png"]; // [email protected] is loaded for high-res device
UIImage* maskedImage = [self maskImage:image withMask:mask];
// ... Some code here displaying maskedImage
}
- (UIImage *)maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
UIImage* maskedImage = nil;
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);
maskedImage = [UIImage imageWithCGImage:masked];
return maskedImage;
}
Sur le simulateur de l'iPhone 4, les images [email protected] et [email protected] sont chargées, puis l'image masquée résultante est rognée.
Une idée de ce que je fais mal?
Merci Chris le commentaire. Avez-vous un exemple de code qui fera le travail de masquage pour les images standard et haute résolution? – Joshua