Éditeur de photos
Présentez PhotoEditorPage depuis un bouton ou une méthode de page existante via une fenêtre modale Ionic. Faites-le après l’installation.
import { Component, inject } from '@angular/core';
import type { ApplicationConfig } from '@angular/core';
import { ModalController, IonButton } from '@ionic/angular';
import { PhotoEditorProps, PhotoEditorResult, providePhotoEditor } from '@rdlabo/ionic-angular-photo-editor';
import { PhotoEditorPage } from '@rdlabo/ionic-angular-photo-editor/editor';
import { createTuiImageEditor } from '@rdlabo/ionic-angular-photo-editor/editor/tui';
export const appConfig: ApplicationConfig = {
providers: [providePhotoEditor({ createImageEditor: createTuiImageEditor })],
};
@Component({
selector: 'app-edit-photo',
imports: [IonButton],
template: `<ion-button type="button" (click)="openEditor()">Edit photo</ion-button>`,
})
export class EditPhotoPage {
private readonly modalCtrl = inject(ModalController);
async openEditor(): Promise<void> {
const componentProps = {
requireSquare: false,
value: 'https://picsum.photos/200/300',
toolbarColorScheme: 'dark',
labels: {
save: '送信', // remplace la valeur par défaut '保存'
},
} satisfies PhotoEditorProps;
const modal = await this.modalCtrl.create({
component: PhotoEditorPage,
componentProps,
});
await modal.present();
const { data } = await modal.onWillDismiss<PhotoEditorResult>();
if (data?.action === 'save') {
console.log(data.value);
}
}
}
Résultat de la fenêtre modale
Lors de l’enregistrement, la fenêtre modale se ferme avec :
interface PhotoEditorResult {
action: 'save';
value: string; // URL de données de l’image modifiée
}
Une fermeture sans enregistrement ne renvoie aucune donnée.
Options
requireSquare: boolean
Si la valeur est true, l’image doit être recadrée en carré avant de poursuivre l’édition.
value: string
URL de l’image ou URL de données à modifier.
toolbarColorScheme: 'light' | 'dark'
Obligatoire. Utilisez dark pour un ion-toolbar sombre/noir et light pour une barre claire/blanche. La bibliothèque ne peut pas déduire l’apparence de la barre depuis le CSS, sa translucidité ou les modifications de thème à l’exécution. Consultez Thème.
labels: Partial<PhotoEditorLabels>
Remplace les textes de l’interface par défaut. Les clés non renseignées conservent les valeurs japonaises intégrées :
| Clé | Valeur par défaut (ja) |
|---|---|
| save | 保存 |
| close | 閉じる |
| back | 戻る |
| apply | 適用 |
| crop | 切り抜き・回転 |
| rotate | 回転 |
| cropCover | 画像に合わせる |
| crop16x9 | 16対9 |
| cropSquare | 正方形 |
| cropFree | 自由 |
| filter | フィルター |
| brightness | 明るさ |
| original | オリジナル |
| invert | 反転 |
| sepia | セピア |
| vintage | ヴィンテージ |
| blur | ぼかし |
| grayscale | グレースケール |
| sharpen | 輪郭 |
| emboss | エンボス |