UIImage, CGImage et CIImage sont sur un bâteau

Cet article s’adresse aux développeurs iOS / tvOS / watchOS et – dans une certaine mesure – macOS.

Lors de la conception d’une application, on rencontre généralement pas mal de problématiques autour des images et on ne sait pas forcément quelle technique utiliser.

Ce court article en est une synthèse.

UIImage : images « statiques »

UIImage fait partie de UIKit.

UIImage est utilisé pour afficher une image plutôt statique dans un contexte où l’enjeu sera un affichage rapide sans consommer trop de ressources.

Par exemple, on va utiliser UIImage pour afficher une photo venant d’un service web. La photo est déjà prête et calibrée, elle ne risque pas de changer.

UIImage travaille véritablement dans l’environnement de l’interface graphique.

CGImage : transformer une image

CGImage fait partie de Core Graphics.

Vous souhaitez effectuer une rotation d’image, réaliser un découpage d’image, etc ? En clair, vous souhaitez modifier les données bitmap d’une image ?

CGImage fournit tous les outils nécessaires pour effectuer ces transformations et son accélération matérielle vient de Quartz 2D, l’API de dessin 2D propre à Apple.

CGImage se positionne dans l’environnement de l’image, avec beaucoup plus d’autonomie que UIImage.

CIImage : appliquer des filtres en temps réel

CIImage fait partie de Core Image.

CIImage ne représente pas vraiment une image, mais peu importe. L’idée est que Core Image permet d’appliquer en temps réel – grâce à la combinaison du CPU et du GPU – des filtres sur les images.

Ces filtres permettent des déformations d’images, mais ils sont surtout optimisés pour le traitement de la couleur. (filtre noir et blanc, sépia, sur-exposition, modification du contraste, pixellisation, etc)

Core Image est vraiment optimisé pour travailler avec les API comme OpenGL ES ou Metal qui permettent d’effectuer très rapidement des millions d’opérations très simples et très spécifiques.

Core Image est également utilisé pour détecter des visages ou des objets par exemple.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s