Zum Inhalt springen
rdlabo.devdocs

Erste Schritte

Modale Fotoeditor- und Betrachterseiten für Ionic-Angular-Anwendungen mit Dateiauswahl im Browser und optionaler Kamera-/Album-Unterstützung über Capacitor.

Installation

npm install @rdlabo/ionic-angular-photo-editor tui-image-editor

Ein Foto im Browser auswählen und anzeigen

Registrieren Sie den TUI-Adapter zur Größenänderung, der für die Größenänderung mit loadPhoto erforderlich ist. Wählen Sie anschließend eine Datei aus und zeigen Sie die zurückgegebene Daten-URL an:

import { Component, inject, signal } from '@angular/core';
import type { ApplicationConfig } from '@angular/core';
import { IonButton, IonImg } from '@ionic/angular';
import { providePhotoEditor, PhotoLoadError } from '@rdlabo/ionic-angular-photo-editor';
import { createTuiImageEditor } from '@rdlabo/ionic-angular-photo-editor/editor/tui';
import { PhotoFileService } from '@rdlabo/ionic-angular-photo-editor/file';

export const appConfig: ApplicationConfig = {
  providers: [
    providePhotoEditor({
      maxSize: 1000,
      createImageEditor: createTuiImageEditor,
    }),
  ],
};

@Component({
  selector: 'app-photo-pick',
  imports: [IonButton, IonImg],
  template: `
    <ion-button type="button" (click)="pick()">Select photo</ion-button>
    @if (previewUrl()) {
      <ion-img [src]="previewUrl()" alt="Selected photo"></ion-img>
    }
  `,
})
export class PhotoPickPage {
  private readonly photoFileService = inject(PhotoFileService);
  readonly previewUrl = signal('');

  async pick(): Promise<void> {
    try {
      const files = await this.photoFileService.loadPhoto({ limit: 1 });
      this.previewUrl.set(files[0] ?? '');
    } catch (error) {
      if (error instanceof PhotoLoadError && error.code === 'cancelled') {
        return;
      }
      throw error;
    }
  }
}

Klicken Sie auf Select photo und wählen Sie ein Bild aus: Die Vorschau erscheint. Die Einrichtung von nativer Kamera und Album folgt unter PhotoFileService.

Einen Betrachter oder die native Kamera ergänzen

Installieren Sie die Abhängigkeiten der Funktionen, die Sie hinzufügen:

# Bildanzeige
npm install swiper

# Native Kamera- und Albumauswahl
npm install @capacitor/camera

Für nativen Kamerazugriff konfigurieren Sie die Kameraberechtigungen und den Adapter unter PhotoFileService. Native iOS-Apps erfordern iOS/iPadOS 16.4 oder neuer.

Einstiegspunkte des Pakets

Importpfad Exporte
@rdlabo/ionic-angular-photo-editor Typen, providePhotoEditor, PHOTO_EDITOR_CONFIG, PhotoLoadError
@rdlabo/ionic-angular-photo-editor/editor PhotoEditorPage
@rdlabo/ionic-angular-photo-editor/editor/tui Optionaler Adapter createTuiImageEditor
@rdlabo/ionic-angular-photo-editor/viewer PhotoViewerPage
@rdlabo/ionic-angular-photo-editor/file PhotoFileService
@rdlabo/ionic-angular-photo-editor/file/capacitor Optionaler Adapter loadCapacitorPhotoCamera

Importieren Sie Komponenten und Services ausschließlich über ihren Einstiegspunkt. Gemeinsam genutzte Typen und Konfiguration importieren Sie aus dem Root-Paket.

Nach Bearbeitungsziel auswählen

Ziel Anleitung
Ein Foto von Kamera oder Album laden PhotoFileService
In einem modalen Dialog zuschneiden und bearbeiten Fotoeditor
Bilder in einem modalen Dialog durchsehen Fotobetrachter
Editorfarben überschreiben Theme
Von einer älteren Version aktualisieren Migrationsanleitung