Arbeiten mit Bildern in Swift (iOS/macOS): Vollständige Anleitung

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit Bildern in Swift (iOS/macOS)

In diesem Artikel betrachten wir detailliert die Arbeit mit Bildern in Swift für die Plattformen iOS und macOS. Sie erfahren, wie Sie Bilder mit den integrierten Apple-Frameworks UIKit (iOS), AppKit (macOS) und Core Image laden, anzeigen, verarbeiten und speichern. Das Material ist sowohl für Anfänger als auch für erfahrene Entwickler nützlich.



Wichtige Frameworks für die Arbeit mit Bildern

Im Apple-Ökosystem gibt es mehrere Möglichkeiten, mit Bildern zu arbeiten. Die wichtigsten sind:

  • UIKit (iOS/tvOS) — UIImage, UIImageView
  • AppKit (macOS) — NSImage, NSImageView
  • Core Image — leistungsstarkes Framework zur Bildverarbeitung (Filter, Transformationen)
  • SwiftUI — Image für deklarative Darstellung


Bilder laden in iOS (UIKit)

Der einfachste Weg, ein Bild in iOS zu laden, ist die Verwendung von UIImage. Beispiel für das Laden aus Assets und aus einer Datei:

// Laden aus Assets.xcassetslet imageFromAssets = UIImage(named: "myImage")

// Laden aus einer Datei im Bundleif let path = Bundle.main.path(forResource: "photo", ofType: "jpg") { let imageFromFile = UIImage(contentsOfFile: path)}

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


Bilder anzeigen in UIKit

Zur Anzeige eines Bildes wird UIImageView verwendet:

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


Arbeiten mit Bildern in macOS (AppKit)

In macOS werden NSImage und NSImageView verwendet:

// Bild ladenlet nsImage = NSImage(named: "macImage")

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


Bildverarbeitung mit Core Image

Core Image bietet Dutzende integrierter Filter. Betrachten wir grundlegende Operationen:

import CoreImage

// Erstellen eines CIImage aus UIImageguard let uiImage = UIImage(named: "input"), let ciImage = CIImage(image: uiImage) else { return }

// Anwenden des Filters "Gaußscher Weichzeichner"let filter = CIFilter(name: "CIGaussianBlur")filter?.setValue(ciImage, forKey: kCIInputImageKey)filter?.setValue(10.0, forKey: kCIInputRadiusKey)

// Ergebnis abrufenguard let outputImage = filter?.outputImage else { return }

// Zurückkonvertieren in UIImagelet context = CIContext(options: nil)if let cgImage = context.createCGImage(outputImage, from: outputImage.extent) { let blurredImage = UIImage(cgImage: cgImage)}


Beliebte Core Image Filter

  • CISepiaTone — Sepia
  • CIPhotoEffectMono — Schwarz-Weiß-Effekt
  • CIVignette — Vignettierung
  • CIColorControls — Helligkeit, Kontrast, Sättigung
  • CICrop — Bild zuschneiden


Arbeiten mit Bildern in SwiftUI

SwiftUI bietet eine einfache und deklarative Möglichkeit, mit Bildern zu arbeiten:

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) }}

Empfehlungen