Effet temps réel sur une image
Bonjour,
Je commence tout juste à développer sur iPhone et vous prie d'excuser mes questions si elles sont bêtes.
Je cherche à réaliser pour me faire la main une petite application permettant de modifier en temps réel une image (effet bump mapping en fonction de la position du doigt sur l'écran).
Quelle est le meilleur moyen de procéder pour avoir une application assez rapide? passer par un UIImage, récupérer les pixels, les modifier, afficher le résultat et recommencer?
Où bien il existe un moyen plus simple et/ou plus rapide?
Merci par avance pour votre aide
Je commence tout juste à développer sur iPhone et vous prie d'excuser mes questions si elles sont bêtes.
Je cherche à réaliser pour me faire la main une petite application permettant de modifier en temps réel une image (effet bump mapping en fonction de la position du doigt sur l'écran).
Quelle est le meilleur moyen de procéder pour avoir une application assez rapide? passer par un UIImage, récupérer les pixels, les modifier, afficher le résultat et recommencer?
Où bien il existe un moyen plus simple et/ou plus rapide?
Merci par avance pour votre aide
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
(chercher CoreImageFunHouse dans le dossier Developer comme appli de démo)
Malheureusement cette bibliothèque, bien que basée sur CoreGraphics et compatible avec CoreAnimation, n'est pas encore utilisable sur iPhone ( sauf quelques effets comme les transitions par exemple)
Sinon passer par le traitement des CGImageRef, version bas niveau des UIImage, refabriquer le filtre ... gros boulot. Un mot clé dans la doc : Quartz 2D Programming Guide.
Déjà pour tout ce qui est directives de dessin "à la main", on n'a pas les NSBezierPath mais on doit faire ça bas niveau... Alors les effets CoreImage, s'ils les mettaient à disposition de tout le monde pour qu'on puisse les utiliser facilement alors que ça peut vite prendre de la ressource, précieuse sur iPhone, c'est la porte ouverte à de la conso mémoire et rsrc "juste pour faire joli".
Conclusion, c'est peut-être jouable mais en refaisant l'effet à la main, mais perso je pense pas que l'effet de ce genre sera dispo en natif un jour dans l'iPhone.
Une idée de ce qu'utilise les applis du genre d'iSteam
http://www.journaldugeek.com/2009/01/02/isteam-de-la-buee-dans-mon-iphone/
pour arriver à leur fins?
1) Tu prépares une image contenant la buée (image PNG avec canal alpha pour la semi-transparence)
2) quand tu souffles, tu mets l'image par dessus l'image du springboard
3) Quand tu bouges ton doit, ça efface cette partie de l'image de buée là où tu as mis ton doigt
Aucun effet complexe de ce côté pour le traitement d'image genre déformation d'image ou quoi, contrairement à l'idée de "bump" que tu proposes, où là c'est un peu plus consommateur et plus complexe en traitement d'image.
sinon avec les CGImageRef, il y a des choses à savoir afin de pas trop perdre de temps machine?
Avec les CGImageRef, tu codes en C. C'est donc les règles d'optimisation classiques du C qui sont à prendre en compte.