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 —
Imagepour 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épiaCIPhotoEffectMono— effet noir et blancCIVignette— vignettageCIColorControls— luminosité, contraste, saturationCICrop— 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) }} Aussi dans la bibliothèque
Validation des données en Java : aperçu des bibliothèques et outils
Travailler avec les archives ZIP en Swift (iOS/macOS) : guide complet
Hibernate ORM : Un outil puissant pour travailler avec les bases de données en Java
Envoi d'email en JavaScript (Node.js) — bibliothèques et exemples de code