J'ai recherché cette réponse pendant un certain temps. Mais je n'ai pas réussi à le trouver.Moyenne de plusieurs UIImages
Je voudrais faire la moyenne des pixels de 30 UIimages. Pour ce faire, je voudrais le faire en utilisant Quartz2D au lieu de parcourir tous les pixels de toutes les images. Il m'est apparu que, pour peindre 30 images ensemble, je devrais ajuster le canal alpha de chacune d'elles à 1/30. Ensuite, après avoir peint l'un dans l'autre, j'obtiendrais l'effet désiré.
la formule souhaitée doit être: Dest Px = (img [0] + .... .px img [29] .px)/30
j'ai essayé d'y parvenir en utilisant un ImageContext et le mélange des images ensemble avec pas de chance:
UIGraphicsBeginImageContext(CGSizeMake(sz.width, sz.height));
for (int i=0; i<30; i++) {
UIImage* img = [self.delegate requestImage:self at:i];
CGPoint coord = [self.delegate requestTranslation:self at:i];
[img drawAtPoint:coord blendMode:kCGBlendModeNormal alpha:1/30];
}
UIImage* im = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Comment est-ce que je pourrais obtenir une image moyennée de beaucoup d'UIimages? J'ai aussi essayé d'ajouter une image avec de nombreuses sous-couches, mais j'ai aussi des images délavées.
Merci!
Merci, j'ai trouvé le problème. J'avais besoin d'un mélange progressif: appliquer alpha 1.0 à la première image, 0.5 à la seconde, 0.33 à la troisième et ainsi de suite. C'est parce que le mélange est appliqué à l'arrière-plan. – user1021161