Frühere native Photo Editor‑Schnittstelle. Bearbeitung und Export im aktuellen Beta werden noch getestet.
Frühere native Photo Editor‑Schnittstelle. Bearbeitung und Export im aktuellen Beta werden noch getestet.
← Alle nativen Anleitungen

Xodera Plugins · Bubble Native

Xodera Photo Editor Native

Verwandeln Sie ein ausgewähltes Foto in ein einheitliches Avatar, Produktbild oder Bericht‑Anhang. Schneiden Sie es zu, drehen und skalieren Sie es, und speichern Sie dann die exportierte Kopie in Ihrer App.

Public beta guides · Haptics instructions are in its Bubble listing

Public beta offer: free Bubble install · 7-day card trial, then US$1.50/month per plugin/project.

Dokumentation geprüft 6 November 2026

Praktische Beispiele

Konsistente Profil‑Avatare vor dem Hochladen

Benutzer sollten auswählen, welcher Teil ihres Fotos in einem quadratischen Profilbild angezeigt wird, anstatt einen beliebigen Zuschnitt zu akzeptieren.

`source_url = selected profile image`; `crop_aspect = "1:1"`; `document_context = the account’s stable reference`.

Warten Sie auf `source_loaded`; Begin crop → Apply crop, bei Bedarf mit Rotate oder Undo. Bei explizitem Speichern Export image.

Nur bei `export_completed` verwenden Sie `output_uri`, `output_width`, `output_height` und `output_mime` als Eingaben für Ihren Datei‑Upload‑Ablauf. Speichern Sie anschließend die dauerhafte Referenz im Profil.

Wenn der Benutzer abbricht oder `editor_error` ausgelöst wird, behalten Sie den alten Avatar. Löschen Sie die Sitzung bei Kontowechsel, damit ein anderer Benutzer den Entwurf nicht sehen kann.

Beim Bearbeiten wird eine lokale Kopie erstellt. Ihre App entscheidet, wie sie gespeichert oder hochgeladen wird.

Erstellen Sie konsistente Marktplatz‑ oder Katalogfotos

Unterschiedliche Bildausschnitte und übergroße Bilder führen zu einem unausgewogenen Katalog und erhöhen die Upload‑Größe.

`source_url = selected item photo`; `crop_aspect = the app’s chosen ratio`; `export_max_dimension`, `export_format` und `export_quality` stammen aus Ihrer Upload‑Richtlinie.

Schneiden Sie den relevanten Bereich zu, optional Resize, und führen Sie anschließend Export image nach Bestätigung durch den Benutzer aus. Bewahren Sie die Originaldatei/Referenz separat auf.

Überprüfen Sie `output_width`, `output_height`, `output_bytes` und `output_mime`, bevor Ihr Upload‑Ablauf das Ergebnis speichert. Speichern Sie die resultierende Bildreferenz beim Artikel.

Wenn der Export fehlschlägt oder das Ergebnis gegen Ihre Upload‑Richtlinie verstößt, zeigen Sie `error_code` an und lassen Sie den Benutzer es überarbeiten. Überschreiben Sie das vorherige Item‑Bild nicht vor der Upload‑Bestätigung.

Beim Bearbeiten wird eine lokale Kopie erstellt. Ihre App entscheidet, wie sie gespeichert oder hochgeladen wird.

Erstellen Sie eine fokussierte Bildkopie für einen Feldbericht

Ein Techniker benötigt möglicherweise eine Nahaufnahme eines beschädigten Teils, wobei das ursprüngliche Bericht‑Bild erhalten bleibt.

`source_url = Current Report Photo’s source`; `document_context = the report/account reference`; Das Zuschneideverhältnis kann unbegrenzt bleiben.

Begin crop → Apply crop, dann verwenden Sie Undo/Redo, um Änderungen zu vergleichen. Export image erstellt die bearbeitete Kopie; Ihre App fragt, ob diese Kopie an den Bericht angehängt werden soll.

Verwenden Sie `has_changes`, `can_undo`, `can_redo` und `output_uri`. Speichern Sie Original‑ und bearbeitete Referenzen in separaten App‑Feldern nach einem erfolgreichen Upload.

Cancel crop oder Reset edits stellt den Bearbeitungsweg wieder her; eine Abbruchaktion muss die ursprüngliche Bericht‑Anlage unverändert lassen.

Beim Bearbeiten wird eine lokale Kopie erstellt. Ihre App entscheidet, wie sie gespeichert oder hochgeladen wird.

Was jetzt funktioniert

Public beta. Use the documented controls and actions; test supported formats, permissions and device behavior in your own native app. Browser preview does not validate native device output.

Workflow erstellen

Verwenden Sie die unten verfügbaren Beta‑Aktionen und testen Sie das Ergebnis auf Ihren Zielgeräten.

Diese Beispiele verwenden App‑Datensätze wie Lesson, Message und Order. Ersetzen Sie sie durch Ihre eigenen Datentypen und Elementnamen. Beispiel‑Medienadressen müssen durch Ihre eigenen Dateien ersetzt werden.

  1. Legen Sie source_url auf das ausgewählte Bild fest. Verwenden Sie document_context, um das Konto und den zu bearbeitenden Datensatz zu identifizieren, sodass das Ändern des Datensatzes das vorherige Foto löscht.

  2. Nach source_loaded führen Sie Begin crop aus. Wählen Sie 1:1 für einen Avatar, passen Sie den Zuschnitt an und verwenden Sie Apply crop. Cancel crop lässt das Bild unverändert.

  3. Verwenden Sie Rotate, Flip oder Resize bei Bedarf. Undo und Redo navigieren durch abgeschlossene Bearbeitungen; Reset edits stellt das Originalbild wieder her.

  4. Führen Sie Export image aus. Auf export_completed lesen Sie output_uri, output_width, output_height und output_mime. Speichern oder laden Sie diese Kopie mit Ihrem gewählten Dateispeicher‑Workflow hoch, und speichern Sie die Datei anschließend im Datensatz.

Workflow‑Diagramm — kein App‑Screenshot

Einmal konfigurieren

Die Schlüsselaktivierung ist für dieses Plugin geplant. Erstellen oder wählen Sie Ihr Bubble‑App‑Projekt in BestPlugins → Dashboard → Plugins. Wählen Sie Xodera Photo Editor Native, kopieren Sie dessen Schlüssel und öffnen Sie dann Bubble → Plugins → Xodera Photo Editor Native, um ihn in licensing_api_key einzufügen. Speichern Sie einmal; verwenden Sie anschließend die untenstehenden Aktionen. Jedes Plugin in jedem Projekt hat einen eigenen Schlüssel.

Wählen Sie das Bild zuerst mit Ihrer App aus oder erfassen Sie es. Geben Sie dem Editor die daraus resultierende lesbare Bildadresse. Kamera‑ und Fotobibliothek‑Berechtigungen gehören zum von Ihnen genutzten Picker.

Einmal konfigurieren
  1. Erstellen oder wählen Sie Ihr Bubble‑App‑Projekt bei BestPlugins → Dashboard → Plugins.
  2. Wählen Sie dieses Plugin aus und kopieren Sie dessen Projektschlüssel.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Fügen Sie das Element hinzu, wählen Sie Ihre App‑Daten und erstellen Sie den untenstehenden Workflow.
  5. In the dashboard, review and confirm the 7-day card trial for this plugin. It then costs US$1.50/month per app project, including development and production. Cancel before the trial ends to avoid the first charge.
Installation und Abonnement

For Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit and Haptics: free Bubble installation, a 7-day trial with a card, then US$1.50 per month per plugin and app project. Development and production are included, with no operation cap. File-size and feature limits still apply. Review billing and cancellation before confirming. Other plugins remain unavailable for purchase.

Speichern Sie das Ergebnis in Ihrer App

Speichern Sie das hochgeladene oder dauerhaft gespeicherte Bild in Profile.image oder Ihrem Anhangsfeld. output_uri ist eine temporäre Datei auf dem Gerät, daher speichern Sie diese Datei zunächst mit Ihrem gewählten Workflow. Anschließend speichern Sie output_width, output_height und output_mime als Metadaten. Bewahren Sie das Originalbild auf, wenn Sie beide Versionen benötigen.

Fehler, Abbruch und Wiederherstellung

Bei source_load_failed oder editor_error zeigen Sie error_code an und bieten Load source an. Cancel operation stoppt die Annahme des unfertigen Ergebnisses; warten Sie bis is_busy=no, bevor Sie eine weitere Bearbeitung starten. Clear session löscht den Editor, nicht ein bereits anderweitig gespeichertes Bild.

Funktionen und Grenzen

JPEG‑ und PNG‑Export; Qualität 0–1; maximale Ausgabeseite 1–4096 Pixel. Eingabe: bis zu 15 MiB und 20 Megapixel. Bis zu 20 abgeschlossene Bearbeitungen. Zuschneideoptionen: frei, 1:1, 4:3, 3:4 und 16:9. Keine integrierte Kamera, Filter, Textüberlagerungen, Perspektivkorrektur, WebP‑Export oder automatischer Upload.

Einstellungen, Aktionen und Ergebnisse

Verwenden Sie diese Namen in Bubble. Geplante Funktionen sind separat gekennzeichnet.

Verfügbare Beta‑Einstellungen

Elementeinstellungen

source_url · textdocument_context · textis_active · yes_nodisabled · yes_noshow_controls · yes_nocrop_aspect · textexport_format · textexport_quality · numberexport_max_dimension · numberallow_upscale · yes_noui_text_json · textlanguage · text

Zustände

editor_status · textis_busy · yes_nohas_image · yes_nohas_changes · yes_nocan_undo · yes_nocan_redo · yes_noimage_width · numberimage_height · numberoutput_uri · textoutput_width · numberoutput_height · numberoutput_bytes · numberoutput_mime · texterror_code · textcrop_active · yes_nocrop_rect_json · text

Ereignisse

source_loadedsource_load_failededit_appliededit_undoneedit_redoneeditor_resetexport_startedexport_completedoperation_cancellededitor_error

Aktionen und deren Eingaben

Load sourceBegin cropApply cropCancel cropRotateFlipResizeUndoRedoReset editsExport imageCancel operationClear session
Elementeinstellungen · 12
source_urltext · Standard: ""
Beispielwerthttps://bestplugins.online/native-samples/avatar.jpg
Beispiel Bubble AusdruckSelected Profile's image_url
Adresse der ausgewählten Audio-, Video- oder Bilddatei. Verwenden Sie einen Dateityp, den dieses Plugin unterstützt.
document_contexttext · Standard: ""
Beispielwert<current-user-id>
Beispiel Bubble AusdruckCurrent User's unique id
Stabiler Wert für dieses Konto oder diesen Datensatz. Verwenden Sie denselben Wert beim Wiederherstellen seiner gespeicherten Dateien oder Entwürfe.
is_activeyes_no · Standard: true
Beispielwertyes
Beispiel Bubble AusdruckGuideHost's view_is_active (your yes/no custom state)
Setzen Sie ja, solange diese Ansicht geöffnet ist. Setzen Sie nein beim Verlassen, damit die Wiedergabe oder die aktuelle Arbeit gestoppt werden kann.
disabledyes_no · Standard: false
Beispielwertno
Beispiel Bubble AusdruckGuideHost's is_busy (your yes/no custom state)
Deaktivieren Sie das Element, solange Ihre App beschäftigt ist oder diese Aktion nicht verfügbar ist.
show_controlsyes_no · Standard: true
Beispielwertyes
Beispiel Bubble AusdruckApp Settings' show_editor_controls
Ein- oder Ausblenden der integrierten Steuerelemente.
crop_aspecttext · Standard: "free"
Beispielwert1:1
Beispiel Bubble AusdruckAvatar Settings' crop_ratio
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
export_formattext · Standard: "jpeg"
Beispielwertjpeg
Beispiel Bubble AusdruckFormat Dropdown's value
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
export_qualitynumber · Standard: 0.85
Beispielwert0.85
Beispiel Bubble AusdruckImage Settings' quality
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
export_max_dimensionnumber · Standard: 2048
Beispielwert2048
Beispiel Bubble AusdruckImage Settings' max_side
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
allow_upscaleyes_no · Standard: false
Beispielwertno
Beispiel Bubble AusdruckAllow upscale Checkbox is checked
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
ui_text_jsontext · Standard: ""
Beispielwert{}
Beispiel Bubble AusdruckApp Settings' player_labels_json (supported keys only)
Optionales JSON mit unterstützten Schaltflächenbeschriftungen. Leer lassen, um den integrierten Text zu verwenden.
languagetext · Standard: "auto"
Beispielwertuk
Beispiel Bubble AusdruckCurrent User's preferred_language
Setzen Sie language=auto, um einer unterstützten Geräte‑ oder Browsersprache zu folgen. Geben Sie einen unterstützten Sprachcode ein, um ihn ausdrücklich auszuwählen.
Aktionen und deren Eingaben · 13
Load source

Keine Aktionsparameter

Begin crop

Keine Aktionsparameter

Apply crop
origin_xnumber · Standard: —
Beispielwert0
Beispiel Bubble AusdruckCrop Settings' x (or omit all rectangle inputs)
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
origin_ynumber · Standard: —
Beispielwert0
Beispiel Bubble AusdruckCrop Settings' y (or omit all rectangle inputs)
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
widthnumber · Standard: —
Beispielwert512
Beispiel Bubble AusdruckResize Width Input's value:converted to number
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
heightnumber · Standard: —
Beispielwert512
Beispiel Bubble AusdruckResize Height Input's value:converted to number
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Cancel crop

Keine Aktionsparameter

Rotate
degreesnumber · Standard: —
Beispielwert90
Beispiel Bubble AusdruckRotation Dropdown's value
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Flip
axistext · Standard: —
Beispielwerthorizontal
Beispiel Bubble AusdruckFlip Direction Dropdown's value
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Resize
widthnumber · Standard: —
Beispielwert512
Beispiel Bubble AusdruckResize Width Input's value:converted to number
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
heightnumber · Standard: —
Beispielwert512
Beispiel Bubble AusdruckResize Height Input's value:converted to number
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Undo

Keine Aktionsparameter

Redo

Keine Aktionsparameter

Reset edits

Keine Aktionsparameter

Export image

Keine Aktionsparameter

Cancel operation

Keine Aktionsparameter

Clear session

Keine Aktionsparameter

Zustände und Ereignisse

Zustände

editor_status · text

Aktuelles Ergebnis dieser Aktion. Verwenden Sie das passende Abschlussereignis, bevor Sie den Erfolg speichern.

is_busy · yes_no

Die Arbeit ist noch im Gange. Bitte warten Sie, bevor Sie eine weitere Aktion starten.

has_image · yes_no

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

has_changes · yes_no

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

can_undo · yes_no

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

can_redo · yes_no

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

image_width · number

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

image_height · number

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

output_uri · text

Dateistandort auf diesem Gerät. Speichern oder laden Sie die Datei separat hoch, wenn sie online behalten werden muss.

output_width · number

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

output_height · number

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

output_bytes · number

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

output_mime · text

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

error_code · text

Fehlermeldung für die letzte Aktion. Zeigen Sie eine hilfreiche Nachricht an und bieten Sie den entsprechenden Wiederholungsversuch an.

crop_active · yes_no

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

crop_rect_json · text

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

Ereignisse

source_loaded

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

source_load_failed

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

edit_applied

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

edit_undone

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

edit_redone

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

editor_reset

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

export_started

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

export_completed

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

operation_cancelled

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

editor_error

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

Fragen, die Entwickler stellen

Ist output_uri eine Bubble‑Datei?

Nein. Es ist ein lokaler Cache‑Pfad. Bewahren Sie ihn über einen bewährten lokalen Speicherer oder Uploader auf, bevor Sie eine Cloud‑Dateireferenz speichern.

Wie funktioniert das Abonnement?

For Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit and Haptics: free Bubble installation, a 7-day trial with a card, then US$1.50 per month per plugin and app project. Development and production are included, with no operation cap. File-size and feature limits still apply. Review billing and cancellation before confirming. Other plugins remain unavailable for purchase.

Verwandte Anleitungen

Für Hilfe geben Sie an, welches Plugin und Gerät Sie verwenden, welche Aktion Sie versucht haben und was passiert ist. Verwenden Sie ein Beispiel ohne persönliche Daten. Teilen Sie niemals Ihren Schlüssel oder private Dateien.