Interfață nativă anterioară Photo Editor. Editarea și exportul în beta curentă sunt încă în testare.
Interfață nativă anterioară Photo Editor. Editarea și exportul în beta curentă sunt încă în testare.
← Toate ghidurile native

Xodera Plugins · Bubble Native

Xodera Photo Editor Native

Transformă o fotografie selectată într-un avatar coerent, imagine de produs sau atașament de raport. Decupează, rotește și redimensioneaz-o, apoi salvează copia exportată în aplicația ta.

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.

Documentație revizuită 6 noiembrie 2026

Exemple practice

Avatare de profil consecvente înainte de încărcare

Utilizatorii ar trebui să aleagă care parte a fotografiei lor apare într-o imagine de profil pătrată în loc să accepte o decupare arbitrară.

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

Așteptați `source_loaded`; Begin crop → Apply crop, cu Rotate sau Undo după necesitate. La salvare explicită, Export image.

Doar pe `export_completed`, utilizați `output_uri`, `output_width`, `output_height` și `output_mime` ca intrări în fluxul de lucru de încărcare a fișierului. Salvați ulterior referința durabilă în Profil.

Dacă utilizatorul anulează sau `editor_error` se declanșează, păstrați vechiul avatar. Ștergeți sesiunea la schimbarea contului pentru ca alt utilizator să nu poată vedea ciornă.

Editarea creează o copie locală. Aplicația dvs. alege cum să o salveze sau să o încarce.

Pregătiți fotografii de piață sau catalog consecvente

Încadrarea diferită și imaginile supradimensionate fac catalogul neuniform și cresc dimensiunea încărcării.

`source_url = selected item photo`; `crop_aspect = the app’s chosen ratio`; `export_max_dimension`, `export_format` și `export_quality` provin din politica dvs. de încărcare.

Decupați zona relevantă, opțional Resize, apoi Export image după confirmarea utilizatorului. Păstrați fișierul/referința originală separat.

Verificați `output_width`, `output_height`, `output_bytes` și `output_mime` înainte ca fluxul de lucru de încărcare să salveze rezultatul. Stocați referința imaginii rezultate pe Element.

Dacă exportul eșuează sau rezultatul încalcă politica dvs. de încărcare, afișați `error_code` și permiteți utilizatorului să îl revizuiască. Nu suprascrieți imaginea anterioară a Elementului înainte de confirmarea încărcării.

Editarea creează o copie locală. Aplicația dvs. alege cum să o salveze sau să o încarce.

Creați o copie de imagine focalizată pentru un raport de teren

Un tehnician poate avea nevoie de o apropiere a unei părți deteriorate păstrând imaginea originală a raportului.

`source_url = Current Report Photo’s source`; `document_context = the report/account reference`; raportul de decupare poate rămâne nedefinit.

Begin crop → Apply crop, apoi folosiți Undo/Redo pentru a compara editările. Export image creează copia editată; aplicația dvs. întreabă dacă să atașați acea copie la Raport.

Utilizați `has_changes`, `can_undo`, `can_redo` și `output_uri`. Stocați referințele originale și editate în câmpuri separate ale aplicației după o încărcare reușită.

Cancel crop sau Reset edits restaurează calea de editare; anularea trebuie să lase atașamentul original al Raportului neschimbat.

Editarea creează o copie locală. Aplicația dvs. alege cum să o salveze sau să o încarce.

Ce funcționează acum

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.

Construiește fluxul de lucru

Utilizați acțiunile beta disponibile mai jos și testați rezultatul pe dispozitivele țintă.

Aceste exemple folosesc înregistrări de aplicație precum Lesson, Message și Order. Înlocuiți-le cu propriile tipuri de date și nume de elemente. Adresele media de exemplu trebuie înlocuite cu fișierele dumneavoastră.

  1. Setează source_url la imaginea aleasă. Folosește document_context pentru a identifica contul și înregistrarea care este editată, astfel că schimbarea înregistrării șterge fotografia anterioară.

  2. După source_loaded, rulează Begin crop. Alege 1:1 pentru un avatar, ajustează decuparea și folosește Apply crop. Cancel crop lasă imaginea neschimbată.

  3. Folosește Rotate, Flip sau Resize dacă este necesar. Undo și Redo navighează prin editările finalizate; Reset edits restaurează imaginea originală.

  4. Rulați Export image. Pe export_completed, citiți output_uri, output_width, output_height și output_mime. Salvați sau încărcați acea copie utilizând fluxul de lucru ales pentru salvarea fișierelor, apoi stocați fișierul salvat în înregistrare.

Diagramă de flux de lucru — nu o captură de ecran a aplicației

Configurează o singură dată

Activarea cheii este planificată pentru acest plugin. Creează sau alege proiectul tău de aplicație Bubble în BestPlugins → Dashboard → Plugins. Alege Xodera Photo Editor Native, copiază cheia acestuia, apoi deschide Bubble → Plugins → Xodera Photo Editor Native și lipește-o în licensing_api_key. Salvează o singură dată; apoi folosește acțiunile de mai jos. Fiecare plugin din fiecare proiect are propria cheie.

Selectează sau capturează imaginea mai întâi cu aplicația ta. Furnizează editorului adresa imaginii rezultate lizibile. Permisiunile camerei și ale bibliotecii foto aparțin selectorului pe care îl folosești.

Configurează o singură dată
  1. Creați sau alegeți proiectul de aplicație Bubble la BestPlugins → Dashboard → Plugins.
  2. Selectați acest plugin și copiați cheia proiectului.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Adăugați elementul, alegeți datele aplicației și construiți fluxul de lucru de mai jos.
  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.
Instalare și abonament

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.

Salvează rezultatul în aplicația ta

Salvează imaginea încărcată sau salvată permanent în Profile.image sau în câmpul tău de atașament. output_uri este un fișier temporar pe dispozitiv, așa că mai întâi salvează acel fișier cu fluxul de lucru ales. Apoi stochează output_width, output_height și output_mime ca metadate. Păstrează imaginea originală dacă ai nevoie de ambele versiuni.

Eșec, anulare și recuperare

Pe source_load_failed sau editor_error, afișează error_code și oferă Load source. Cancel operation oprește acceptarea rezultatului neterminat; așteaptă până la is_busy=no înainte de a începe o altă editare. Clear session curăță editorul, nu o imagine deja salvată în altă parte.

Capacități și limite

Export JPEG și PNG; calitatea 0–1; dimensiunea maximă a ieșirii 1–4096 pixeli. Intrare: până la 15 MiB și 20 megapixeli. Până la 20 editări finalizate. Opțiuni de decupare: liber, 1:1, 4:3, 3:4 și 16:9. Fără cameră încorporată, filtre, suprapuneri de text, corecție de perspectivă, export WebP sau încărcare automată.

Setări, acțiuni și rezultate

Utilizați aceste nume în Bubble. Funcționalitățile planificate sunt marcate separat.

Setări beta disponibile

Setări element

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

Stări

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

Evenimente

source_loadedsource_load_failededit_appliededit_undoneedit_redoneeditor_resetexport_startedexport_completedoperation_cancellededitor_error

Acțiuni și intrările lor

Load sourceBegin cropApply cropCancel cropRotateFlipResizeUndoRedoReset editsExport imageCancel operationClear session
Setări element · 12
source_urltext · Implicit: ""
Valoare exempluhttps://bestplugins.online/native-samples/avatar.jpg
Exemplu Bubble expresieSelected Profile's image_url
Adresa fișierului audio, video sau imagine selectat. Folosește un tip de fișier acceptat de acest plugin.
document_contexttext · Implicit: ""
Valoare exemplu<current-user-id>
Exemplu Bubble expresieCurrent User's unique id
Valoare stabilă pentru acest cont sau înregistrare. Folosiți aceeași valoare când restaurați fișierele sau ciornele salvate.
is_activeyes_no · Implicit: true
Valoare exempluyes
Exemplu Bubble expresieGuideHost's view_is_active (your yes/no custom state)
Setați da în timp ce această vizualizare este deschisă. Setați nu la părăsire, pentru ca redarea sau lucrarea curentă să se oprească.
disabledyes_no · Implicit: false
Valoare exempluno
Exemplu Bubble expresieGuideHost's is_busy (your yes/no custom state)
Dezactivați elementul în timp ce aplicația este ocupată sau această acțiune nu este disponibilă.
show_controlsyes_no · Implicit: true
Valoare exempluyes
Exemplu Bubble expresieApp Settings' show_editor_controls
Afișați sau ascundeți controalele încorporate.
crop_aspecttext · Implicit: "free"
Valoare exemplu1:1
Exemplu Bubble expresieAvatar Settings' crop_ratio
Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
export_formattext · Implicit: "jpeg"
Valoare exemplujpeg
Exemplu Bubble expresieFormat Dropdown's value
Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
export_qualitynumber · Implicit: 0.85
Valoare exemplu0.85
Exemplu Bubble expresieImage Settings' quality
Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
export_max_dimensionnumber · Implicit: 2048
Valoare exemplu2048
Exemplu Bubble expresieImage Settings' max_side
Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
allow_upscaleyes_no · Implicit: false
Valoare exempluno
Exemplu Bubble expresieAllow upscale Checkbox is checked
Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
ui_text_jsontext · Implicit: ""
Valoare exemplu{}
Exemplu Bubble expresieApp Settings' player_labels_json (supported keys only)
JSON opțional cu etichete de buton acceptate. Lăsați gol pentru a utiliza textul încorporat.
languagetext · Implicit: "auto"
Valoare exempluuk
Exemplu Bubble expresieCurrent User's preferred_language
Setați language=auto să urmeze limba unui dispozitiv sau a unui browser acceptat. Introduceți un cod de limbă acceptat pentru a o selecta explicit.
Acțiuni și intrările lor · 13
Load source

Niciun parametru de acțiune

Begin crop

Niciun parametru de acțiune

Apply crop
origin_xnumber · Implicit: —
Valoare exemplu0
Exemplu Bubble expresieCrop Settings' x (or omit all rectangle inputs)
Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
origin_ynumber · Implicit: —
Valoare exemplu0
Exemplu Bubble expresieCrop Settings' y (or omit all rectangle inputs)
Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
widthnumber · Implicit: —
Valoare exemplu512
Exemplu Bubble expresieResize Width Input's value:converted to number
Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
heightnumber · Implicit: —
Valoare exemplu512
Exemplu Bubble expresieResize Height Input's value:converted to number
Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
Cancel crop

Niciun parametru de acțiune

Rotate
degreesnumber · Implicit: —
Valoare exemplu90
Exemplu Bubble expresieRotation Dropdown's value
Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
Flip
axistext · Implicit: —
Valoare exempluhorizontal
Exemplu Bubble expresieFlip Direction Dropdown's value
Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
Resize
widthnumber · Implicit: —
Valoare exemplu512
Exemplu Bubble expresieResize Width Input's value:converted to number
Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
heightnumber · Implicit: —
Valoare exemplu512
Exemplu Bubble expresieResize Height Input's value:converted to number
Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
Undo

Niciun parametru de acțiune

Redo

Niciun parametru de acțiune

Reset edits

Niciun parametru de acțiune

Export image

Niciun parametru de acțiune

Cancel operation

Niciun parametru de acțiune

Clear session

Niciun parametru de acțiune

Stări și evenimente

Stări

editor_status · text

Rezultatul curent al acestei acțiuni. Utilizați evenimentul de finalizare corespunzător înainte de a salva cu succes.

is_busy · yes_no

Lucrul este încă în desfășurare. Așteptați înainte de a începe o altă acțiune.

has_image · yes_no

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

has_changes · yes_no

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

can_undo · yes_no

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

can_redo · yes_no

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

image_width · number

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

image_height · number

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

output_uri · text

Locația fișierului pe acest dispozitiv. Salvați sau încărcați fișierul separat dacă trebuie să fie păstrat online.

output_width · number

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

output_height · number

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

output_bytes · number

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

output_mime · text

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

error_code · text

Informații despre eroarea ultimei acțiuni. Afișați un mesaj util și oferiți o reîncercare relevantă.

crop_active · yes_no

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

crop_rect_json · text

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

Evenimente

source_loaded

Când apare acest eveniment, citiți stările aferente din același element.

source_load_failed

Când apare acest eveniment, citiți stările aferente din același element.

edit_applied

Când apare acest eveniment, citiți stările aferente din același element.

edit_undone

Când apare acest eveniment, citiți stările aferente din același element.

edit_redone

Când apare acest eveniment, citiți stările aferente din același element.

editor_reset

Când apare acest eveniment, citiți stările aferente din același element.

export_started

Când apare acest eveniment, citiți stările aferente din același element.

export_completed

Când apare acest eveniment, citiți stările aferente din același element.

operation_cancelled

Când apare acest eveniment, citiți stările aferente din același element.

editor_error

Când apare acest eveniment, citiți stările aferente din același element.

Întrebări pe care le pun dezvoltatorii

Este output_uri un fișier Bubble?

Nu. Este o cale de cache locală. Păstrați‑o printr-un salvator sau încărcător local dovedit înainte de a stoca o referință de fișier în cloud.

Cum funcționează abonamentul?

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.

Ghiduri conexe

Pentru ajutor, spuneți-ne ce plugin și dispozitiv utilizați, acțiunea pe care ați încercat-o și ce s-a întâmplat. Folosiți un exemplu fără date personale. Nu divulgați niciodată cheia sau fișierele private.