Travailler avec les images en Swift (iOS/macOS) : guide complet

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec les images en Swift (iOS/macOS)

Dans cet article, nous allons examiner en détail le travail avec les images en Swift pour les plateformes iOS et macOS. Vous apprendrez à charger, afficher, traiter et enregistrer des images en utilisant les frameworks intégrés d'Apple : UIKit (iOS), AppKit (macOS) et Core Image. Ce contenu sera utile aussi bien aux débutants qu'aux développeurs expérimentés.



Frameworks principaux pour travailler avec les images

Dans l'écosystème Apple, il existe plusieurs façons de travailler avec les images. Les principales sont :

  • UIKit (iOS/tvOS) — UIImage, UIImageView
  • AppKit (macOS) — NSImage, NSImageView
  • Core Image — un framework puissant pour le traitement d'images (filtres, transformations)
  • SwiftUI — Image pour un affichage déclaratif


Chargement d'images sous iOS (UIKit)

La façon la plus simple de charger une image sous iOS est d'utiliser UIImage. Exemple de chargement depuis les assets et depuis un fichier :

// Chargement depuis Assets.xcassetslet imageFromAssets = UIImage(named: "myImage")

// Chargement depuis un fichier dans le Bundleif let path = Bundle.main.path(forResource: "photo", ofType: "jpg") { let imageFromFile = UIImage(contentsOfFile: path)}

// Chargement depuis Dataif let data = try? Data(contentsOf: URL(string: "https://example.com/image.png")!) { let imageFromData = UIImage(data: data)}


Affichage d'images dans UIKit

Pour afficher une image, on utilise UIImageView :

let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))imageView.image = UIImage(named: "example")imageView.contentMode = .scaleAspectFitview.addSubview(imageView)


Travailler avec les images sous macOS (AppKit)

Sous macOS, on utilise NSImage et NSImageView :

// Chargement d'une imagelet nsImage = NSImage(named: "macImage")

// Affichagelet imageView = NSImageView(frame: NSRect(x: 0, y: 0, width: 300, height: 200))imageView.image = nsImageimageView.imageScaling = .scaleProportionallyUpOrDownview.addSubview(imageView)


Traitement d'images avec Core Image

Core Image fournit des dizaines de filtres intégrés. Voyons les opérations de base :

import CoreImage

// Créer un CIImage à partir d'un UIImageguard let uiImage = UIImage(named: "input"), let ciImage = CIImage(image: uiImage) else { return }

// Appliquer le filtre "Flou gaussien"let filter = CIFilter(name: "CIGaussianBlur")filter?.setValue(ciImage, forKey: kCIInputImageKey)filter?.setValue(10.0, forKey: kCIInputRadiusKey)

// Obtenir le résultatguard let outputImage = filter?.outputImage else { return }

// Convertir en UIImagelet context = CIContext(options: nil)if let cgImage = context.createCGImage(outputImage, from: outputImage.extent) { let blurredImage = UIImage(cgImage: cgImage)}


Filtres Core Image populaires

  • CISepiaTone — sépia
  • CIPhotoEffectMono — effet noir et blanc
  • CIVignette — vignettage
  • CIColorControls — luminosité, contraste, saturation
  • CICrop — recadrage de l'image


Travailler avec les images dans SwiftUI

SwiftUI offre un moyen simple et déclaratif de travailler avec les images :

import SwiftUI

struct ContentView: View { var body: some View { Image("swiftui_image") .resizable() .scaledToFit() .frame(width: 200, height: 200) .clipShape(Circle()) .overlay(Circle().stroke(Color.blue, lineWidth: 4)) .shadow(radius: 10) }}

Recommendations