
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ă.
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ă.
După source_loaded, rulează Begin crop. Alege 1:1 pentru un avatar, ajustează decuparea și folosește Apply crop. Cancel crop lasă imaginea neschimbată.
Folosește Rotate, Flip sau Resize dacă este necesar. Undo și Redo navighează prin editările finalizate; Reset edits restaurează imaginea originală.
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.
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ă
- Creați sau alegeți proiectul de aplicație Bubble la BestPlugins → Dashboard → Plugins.
- Selectați acest plugin și copiați cheia proiectului.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Adăugați elementul, alegeți datele aplicației și construiți fluxul de lucru de mai jos.
- 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 · textStă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 · textEvenimente
source_loadedsource_load_failededit_appliededit_undoneedit_redoneeditor_resetexport_startedexport_completedoperation_cancellededitor_errorAcțiuni și intrările lor
Load sourceBegin cropApply cropCancel cropRotateFlipResizeUndoRedoReset editsExport imageCancel operationClear sessionSetări element · 12
source_urltext · Implicit: ""- Valoare exemplu
https://bestplugins.online/native-samples/avatar.jpg - Exemplu Bubble expresie
Selected 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 expresie
Current 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 exemplu
yes - Exemplu Bubble expresie
GuideHost'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 exemplu
no - Exemplu Bubble expresie
GuideHost'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 exemplu
yes - Exemplu Bubble expresie
App Settings' show_editor_controls - Afișați sau ascundeți controalele încorporate.
crop_aspecttext · Implicit: "free"- Valoare exemplu
1:1 - Exemplu Bubble expresie
Avatar 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 exemplu
jpeg - Exemplu Bubble expresie
Format 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 exemplu
0.85 - Exemplu Bubble expresie
Image 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 exemplu
2048 - Exemplu Bubble expresie
Image 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 exemplu
no - Exemplu Bubble expresie
Allow 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 expresie
App 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 exemplu
uk - Exemplu Bubble expresie
Current 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 exemplu
0 - Exemplu Bubble expresie
Crop 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 exemplu
0 - Exemplu Bubble expresie
Crop 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 exemplu
512 - Exemplu Bubble expresie
Resize 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 exemplu
512 - Exemplu Bubble expresie
Resize 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 exemplu
90 - Exemplu Bubble expresie
Rotation Dropdown's value - Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
Flip
axistext · Implicit: —- Valoare exemplu
horizontal - Exemplu Bubble expresie
Flip 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 exemplu
512 - Exemplu Bubble expresie
Resize 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 exemplu
512 - Exemplu Bubble expresie
Resize 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 · textRezultatul curent al acestei acțiuni. Utilizați evenimentul de finalizare corespunzător înainte de a salva cu succes.
is_busy · yes_noLucrul este încă în desfășurare. Așteptați înainte de a începe o altă acțiune.
has_image · yes_noValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
has_changes · yes_noValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
can_undo · yes_noValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
can_redo · yes_noValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
image_width · numberValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
image_height · numberValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
output_uri · textLocația fișierului pe acest dispozitiv. Salvați sau încărcați fișierul separat dacă trebuie să fie păstrat online.
output_width · numberValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
output_height · numberValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
output_bytes · numberValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
output_mime · textValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
error_code · textInformații despre eroarea ultimei acțiuni. Afișați un mesaj util și oferiți o reîncercare relevantă.
crop_active · yes_noValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
crop_rect_json · textValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
Evenimente
source_loadedCând apare acest eveniment, citiți stările aferente din același element.
source_load_failedCând apare acest eveniment, citiți stările aferente din același element.
edit_appliedCând apare acest eveniment, citiți stările aferente din același element.
edit_undoneCând apare acest eveniment, citiți stările aferente din același element.
edit_redoneCând apare acest eveniment, citiți stările aferente din același element.
editor_resetCând apare acest eveniment, citiți stările aferente din același element.
export_startedCând apare acest eveniment, citiți stările aferente din același element.
export_completedCând apare acest eveniment, citiți stările aferente din același element.
operation_cancelledCând apare acest eveniment, citiți stările aferente din același element.
editor_errorCâ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.