UIGraphicsGetImageFromCurrentImageContext – Diviser l'image en deux crée un arrière-plan noir

Je voudrais split un UIImage en deux images uniques. J'utilise le code (de travail) suivant.

UIImage *splitMeInTwo = [UIImage imageNamed:@"Star.png"]; UIImageView *original = [[UIImageView alloc] initWithImage:splitMeInTwo]; [self.view addSubview:original]; [original release]; // The size of each part is half the height of the whole image CGSize size = CGSizeMake([splitMeInTwo size].width, [splitMeInTwo size].height/2); // Create image-based graphics context for top half UIGraphicsBeginImageContextWithOptions(size, TRUE, 0.0); // Draw into context, bottom half is cropped off //[image drawAtPoint:CGPointMake(0.0,0.0)]; [splitMeInTwo drawAtPoint:CGPointMake(0.0,0.0) blendMode:kCGBlendModeNormal alpha:1.0]; // Grab the current contents of the context as a UIImage // and add it to our array UIImage *top = UIGraphicsGetImageFromCurrentImageContext(); UIImageView *topV = [[UIImageView alloc] initWithImage:top]; CGRect frameTop = topV.frame; frameTop.origin.x += 360.0f; topV.frame = frameTop; [self.view addSubview:topV]; [topV release]; UIGraphicsEndImageContext(); 

=> Le résultat https://dl.dropbox.com/u/1503795/Star.png

Ce code fonctionne bien mais le UIImage que je reçois de "UIGraphicsGetImageFromCurrentImageContext" a toujours un fond noir.

Comment puis-je split le "splitMeInTwo" -UIIMage et garder le fond transparent?

Je vous remercie!

MISE À JOUR: Le lien d'image fonctionne maintenant, désolé;)

Essayez de régler le paramètre opaque sur NO .

 UIGraphicsBeginImageContextWithOptions(size, NO, 0.0); 

J'ai eu le même problème. Utilisation

[[UIColor whiteColor] set];

avant que drawInRect ne soit appelé. Alors que l'arrière-plan est défini sur la whiteColor. Et vous obtiendrez l'image couleur nécessaire.