Photo Editing Extension: Was es ist und Funktionen der Erweiterung für iOS

Autor: IT Sectr Veröffentlicht: 2026-06-15 Lesezeit: 9 Min.

Photo Editing Extension ist ein iOS-Mechanismus, der Drittanbieter-Apps ermöglicht, Bearbeitungswerkzeuge direkt in die systemeigene Fotos-App einzufügen. Im Gegensatz zu vollwertigen Editoren lädt die Erweiterung das Foto nicht in eine separate App — der Benutzer wendet Filter an, korrigiert Farben oder fügt Effekte hinzu, ohne die Standardschnittstelle zu verlassen. Laut Apple Developer Documentation (2025) bietet PhotoKit über 40 APIs für die Arbeit mit Fotoressourcen, einschließlich PHAdjustmentData und PHContentEditingController.

Wichtige Punkte

  • Photo Editing Extension bettet Bearbeitungswerkzeuge in die standardmäßige iOS-Fotos-App ein, ohne zwischen Programmen wechseln zu müssen
  • Die Architektur basiert auf dem Protokoll PHContentEditingController, das die Anzeige der Oberfläche und den Erhalt des Originalbilds verwaltet
  • Die Erweiterung verwendet nicht-destruktive Bearbeitung — alle Änderungen werden als AdjustmentData gespeichert, während das Original unberührt bleibt
  • Zur Bearbeitung des Bildes erhält die Erweiterung PHContentEditingInput mit der vollständigen Fotodatei und Metadaten
  • PhotoKit bietet Zugriff auf Fotoressourcen über PHAsset, PHAssetResource und PHImageManager

Was ist Photo Editing Extension in iOS

Photo Editing Extension ist eine Art App-Erweiterung in iOS, die Bildbearbeitungswerkzeuge in die Standardschnittstelle der Fotos-App einbettet. Der Benutzer öffnet ein Foto, tippt auf die Bearbeiten-Schaltfläche und wählt die gewünschte Erweiterung aus der Liste der installierten aus. Nach der Bearbeitung wird das Ergebnis zurück in die Bibliothek gespeichert, und die Originaldatei bleibt für eine Rückgängigmachung verfügbar.

Diese Architektur löst ein zentrales Problem der Benutzererfahrung: Es ist kein Wechsel zwischen Apps, kein Exportieren und Importieren von Bildern und keine Versionsverfolgung erforderlich. Laut WWDC 2025 laufen alle Erweiterungen in einem isolierten Prozess mit eigener Sandbox und begrenzter Ausführungszeit — bis zu 30 Sekunden pro Bearbeitungsvorgang.

Die Erweiterung hat keinen Zugriff auf beliebige Dateien im Gerätespeicher — nur auf das Foto, das der Benutzer explizit über die Auswahloberfläche übergeben hat. Dies gewährleistet die Sicherheit der Benutzerdaten bei Verwendung von Drittanbieter-Tools.

PhotoKit: Architektur und Schlüsselkomponenten

PhotoKit ist ein Apple-Framework für die Arbeit mit der Medienbibliothek des Geräts, eingeführt in iOS 8. Es bietet programmatischen Zugriff auf Fotos-Ressourcen, einschließlich Bilder, Videos, Alben und Metadaten. Für Bearbeitungserweiterungen dient PhotoKit als Zwischenschicht zwischen Speicher und Änderungsoberfläche.

PHAsset und PHAssetResource

PHAsset repräsentiert ein einzelnes Medienobjekt in der Bibliothek — ein Foto oder Video. Über PHAsset können Metadaten abgerufen werden: Aufnahmedatum, Dateityp, Standort auf der Karte und Kameraausrichtung. PHAssetResource bietet Zugriff auf die zugrunde liegenden Ressourcen — zum Beispiel auf die originale Fotodatei im RAW- oder HEIC-Format.

Für eine Bearbeitungserweiterung ist PHContentEditingInput von entscheidender Bedeutung — ein Objekt, das die vollständige Bild- (oder Video-) Datei enthält, die zum Lesen und Verarbeiten verfügbar ist. Die Erweiterung erhält dieses Objekt bei der Aktivierung und verwendet es als Quellmaterial.

PHImageManager und Caching

PHImageManager verwaltet das Laden und Caching von Bildern. Für eine Bearbeitungserweiterung wird es nicht direkt verwendet — die Erweiterung erhält die vollständige Datei über PHContentEditingInput. PHImageRequestOptions ermöglicht jedoch die Konfiguration von Anforderungsparametern: Größe, Liefertyp (synchron oder asynchron) und Ergebnisformat.

Laut Apple speichert PHImageManager automatisch Bildminiaturen im RAM zwischen, was die wiederholte Anzeige von Vorschaubildern beschleunigt. Für Bearbeitungserweiterungen wird die Verwendung von PHImageRequestOptionsDeliveryModeHighQualityFormat empfohlen, um die beste Bildqualität zu erzielen.

swift
let options = PHImageRequestOptions()
options.deliveryMode = .highQualityFormat
options.isSynchronous = true

PHImageManager.default().requestImage(
    for: asset,
    targetSize: .init(width: 1024, height: 1024),
    contentMode: .aspectFill,
    options: options
) { image, _ in
    // use image for display
}

Erstellen einer Erweiterung: PHContentEditingController

Jede Photo Editing Extension implementiert das Protokoll PHContentEditingController — das zentrale Steuerelement der Erweiterung. Das Protokoll definiert Methoden zum Anzeigen der Oberfläche, zum Empfangen von Eingabedaten und zum Speichern des Ergebnisses.

Wichtige Methoden des Protokolls

beginContentEditing(with:) wird beim Start der Bearbeitungssitzung aufgerufen. Die Erweiterung erhält PHContentEditingInput und muss die Oberfläche mit dem Originalbild anzeigen. finishContentEditing(completionHandler:) schließt die Bearbeitung ab — die Erweiterung gibt PHContentEditingOutput mit der modifizierten Datei und AdjustmentData zurück. cancelContentEditing() bricht Änderungen ohne Speichern ab.

Eine wichtige Nuance: Zum Zeitpunkt des beginContentEditing-Aufrufs erhält die Erweiterung nur Zugriff auf eine Version des Fotos — diejenige, die vom Benutzer angefordert wurde. Sie kann nicht auf ein anderes Foto oder Album zugreifen. Dies ist eine Sandbox-Einschränkung, die Apple aus Sicherheitsgründen eingeführt hat.

swift
class PhotoEditingViewController: UIViewController {

    override func beginContentEditing(
        with input: PHContentEditingInput
    ) {
        guard let url = input.fullSizeImageURL else { return }
        let image = CIImage(contentsOf: url)
        displayImage.image = UIImage(ciImage: image)
    }
}

Trennungsarchitektur

PHContentEditingController trennt die Bearbeitungsoberfläche von der Speicherlogik. Der Haupt-iOS-Prozess ruft beginContentEditing auf, die Erweiterung zeigt ihre Benutzeroberfläche, der Benutzer nimmt Änderungen vor, dann erzeugt finishContentEditing eine neue Datei. Apple empfiehlt, alle ressourcenintensiven Verarbeitungen — CIFilter-Filter, Core-Image-Manipulationen — in einem Hintergrundthread und nicht im Hauptthread durchzuführen, um die Oberfläche nicht zu blockieren.

Nicht-destruktive Bearbeitung per AdjustmentData

PHAdjustmentData ist der Schlüsselmechanismus, der nicht-destruktive Bearbeitung in Photo Editing Extension ermöglicht. Es ist ein Objekt, das Informationen über die vorgenommenen Änderungen in einem beliebigen Format enthält. Die Erweiterung serialisiert Filterparameter, Masken und Einstellungen in AdjustmentData und speichert sie zusammen mit dem modifizierten Bild.

Beim erneuten Öffnen des Fotos liest die Erweiterung AdjustmentData, stellt den vorherigen Oberflächenzustand wieder her und ermöglicht dem Benutzer, die Bearbeitung an derselben Stelle fortzusetzen. Wenn die Erweiterung nicht installiert ist, wird das Foto in der zuletzt gespeicherten Version angezeigt, während das Original separat gespeichert wird.

Laut Apple-Dokumentation speichert PHAdjustmentData formatIdentifier und formatVersion — Zeichenfolgen zur Identifizierung des Datenformats. Beim Aktualisieren der Erweiterung sollten Sie die Version überprüfen und alte Formate korrekt behandeln.

swift
let adjustmentData = PHAdjustmentData(
    formatIdentifier: "com.example.photoediting",
    formatVersion: "1.0",
    data: NSKeyedArchiver.archivedData(
        withRootObject: params,
        requiringSecureCoding: true
    )
)
output.adjustmentData = adjustmentData

Zum Zeitpunkt von finishContentEditing schreibt die Erweiterung AdjustmentData in das PHContentEditingOutput-Objekt zusammen mit der modifizierten Bilddatei. Das System speichert dann beide Komponenten: die Version zur Anzeige und die Metadaten zur Wiederherstellung der Bearbeitungssitzung.

Integration mit der Fotos-App

Photo Editing Extension erscheint automatisch im Menü der Fotos-App, nachdem die App installiert wurde, die sie enthält. Der Benutzer öffnet ein Foto, wählt Bearbeiten aus, und in der unteren Werkzeugleiste werden alle installierten Bearbeitungserweiterungen angezeigt — sowohl systemeigene als auch von Drittanbietern.

Registrierung der Erweiterung

Die Erweiterung wird über die Info.plist der Haupt-App mit dem Schlüssel NSExtensionActivationRule registriert, der angibt, welche Inhaltstypen die Erweiterung aktivieren. Für einen Fotoeditor erfordert ActivationRule normalerweise image — die Erweiterung wird nicht für Videos oder Live Photos angezeigt.

Apple empfiehlt, spezifische Aktivierungstypen anzugeben, um das Bearbeitungsmenü nicht zu überlasten. Wenn die Erweiterung nur JPEG und HEIC unterstützt, lohnt es sich, die Aktivierung auf diese Formate zu beschränken.

xml
<!-- Info.plist -->
<key>NSExtension</key>
<dict>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.photo-editing</string>
    <key>NSExtensionActivationRule</key>
    <string>SUBQUERY (extensionItems,
        @count <= 1)</string>
</dict>

Benutzerinteraktion

Nach Auswahl einer Erweiterung erstellt iOS einen separaten Prozess mit einem benutzerdefinierten UIViewController, der über der Fotos-Oberfläche angezeigt wird. Der Benutzer sieht sein Foto, die Werkzeuge der Erweiterung sowie die Schaltflächen Abbrechen/Fertig. Die Erweiterung kann die Navigation außerhalb ihres eigenen Controllers nicht ändern oder auf andere Teile des Systems zugreifen.

Laut Apples Human Interface Guidelines sollte die Oberfläche der Erweiterung minimal und funktional sein — ohne Werbung, fremde Links oder unnötige Navigationselemente. Es wird empfohlen, UIScrollView zum Anzeigen der Werkzeugpalette zu verwenden, um den Bildschirm nicht zu überladen.

Häufig gestellte Fragen

Wie erhält Photo Editing Extension Zugriff auf das Foto?

Die Erweiterung erhält PHContentEditingInput mit der URL der vollständigen Bilddatei über die Methode beginContentEditing(with:). Der Zugriff wird nur auf ein ausgewähltes Foto gewährt — ohne Rechte auf andere Bibliotheksressourcen.

Kann die Erweiterung das Originalfoto verändern?

Nein, das Original wird niemals verändert. Die Erweiterung erstellt eine neue Version über PHContentEditingOutput, und AdjustmentData speichert die Änderungsparameter für die Möglichkeit, zum ursprünglichen Zustand zurückzukehren.

Welche Dateitypen unterstützt Photo Editing Extension?

Die Erweiterung funktioniert mit allen Formaten, die PhotoKit unterstützt: JPEG, HEIC, RAW, PNG, TIFF und Live Photos. Einschränkungen werden über NSExtensionActivationRule in der Info.plist der Erweiterung festgelegt.

Wie viel Zeit steht für die Bearbeitung zur Verfügung?

iOS weist bis zu 30 Sekunden für den finishContentEditing-Vorgang zu. Bei Überschreitung des Limits wird die Erweiterung zwangsweise beendet und die Änderungen werden nicht gespeichert. Die Hintergrundverarbeitung mit CIFilter verlängert diese Zeit nicht.

Kann ich Core Image und Metal in der Erweiterung verwenden?

Ja, Core Image (CIFilter) und Metal (für benutzerdefinierte Shader) werden vollständig unterstützt. Apple empfiehlt, schwere Berechnungen über Grand Central Dispatch auf Hintergrundthreads auszulagern.

Zusammenfassung

  • Photo Editing Extension ist ein einbettbares Bearbeitungswerkzeug in der Fotos-App, das ohne App-Wechsel funktioniert
  • Die Architektur verwendet PHContentEditingController zur Verwaltung der Bearbeitungssitzung und zum Empfang von Eingabedaten
  • PhotoKit bietet PHAsset, PHImageManager und PHContentEditingInput für den Zugriff auf Gerätemedienressourcen
  • PHAdjustmentData ermöglicht nicht-destruktive Bearbeitung — Serialisierung von Änderungsparametern mit Rückgängigkeitsfunktion
  • Die Erweiterung läuft in einer Sandbox mit einem 30-Sekunden-Limit und Zugriff auf nur ein Foto pro Sitzung
  • Core Image, Metal und alle PhotoKit-Formate werden unterstützt: JPEG, HEIC, RAW, PNG, TIFF und Live Photos

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch