Base64Decoder für Spider?

Hier könnt ihr alle Fragen zu SpiderBasic austauschen.
stevie1401
Beiträge: 659
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Base64Decoder für Spider?

Beitrag von stevie1401 »

Habe ich.
Funktioniert nicht.
Aber gebe doch einfach ein einfach zu verstehendes funktionierendes Beispiel. Dann muss der geneigte Leser nicht stundenlang tüfteln.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Base64Decoder für Spider?

Beitrag von ccode_new »

Hast du einen gültigen Base64 String übergeben?
Welche Dateiendung hat dein encodiertes Bild? (Beachten!)
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
stevie1401
Beiträge: 659
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Base64Decoder für Spider?

Beitrag von stevie1401 »

Ich habe es mit jpg und png probiert. Der String ist ok, da er mit CatchimageEX() funktioniert.
Wie gesagt, wir können auch gerne noch 100x weiter raten, aber du kannst auch einfach ein funktionierendes Beispiel prosten, dann wäre der Drop gelutscht.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Base64Decoder für Spider?

Beitrag von ccode_new »

Code: Alles auswählen

Global pic.s, letztesBild.i
Global NewList bildchen()

pic="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"

Procedure Loaded(Type, Filename$, ObjectId)
  AddElement(bildchen())
  bildchen() = ObjectId
  !alert("Alles ok!");
EndProcedure
; 
Procedure LoadingError(Type, Filename$, ObjectId)
  !alert("Dein Bild kann nicht geladen werden.");
EndProcedure

OpenWindow(0, 10, 10, 300, 300, "Image", #PB_Window_SizeGadget)
ImageGadget(0, 0, 0, 300, 300, 0)
;Du >>musst<< die Ressourcen über einen Callback laden!!!
BindEvent(#PB_Event_Loading, @Loaded())
BindEvent(#PB_Event_LoadingError, @LoadingError())

LoadImage(0, "data:image/png;base64,"+pic)

letztesBild = LastElement(bildchen())

If IsImage(letztesBild)
  SetGadgetState(0, letztesBild)
EndIf
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
stevie1401
Beiträge: 659
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Base64Decoder für Spider?

Beitrag von stevie1401 »

Ach Gott... :roll:

;Du >>musst<< die Ressourcen über einen Callback laden!!!

Ja, sorry, nun ist der Groschen gefallen.

Ich kann natürlich nach loadimage() nicht gleich weitermachen.
Ich muss natürlich in der Procedure, die mir sagt dass das Bild geladen wurde, weitermachen.

Dieses Beispiel hat es mir GUT veranschaulicht.
Besten Dank dafür! :)
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Base64Decoder für Spider?

Beitrag von ccode_new »

Ja mein Beispiel ist so fehlerhaft das es sehr gut zeigt wie man es nicht machen sollte.

Du erhältst nur kurzzeitig ein temporäres Bild über LoadImage(..) und das Handle ist nur im aktuellen Load-Callback gültig.
Um es weiter zu verwenden kannst du es z.B. mit CreateImage sichern.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
stevie1401
Beiträge: 659
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Base64Decoder für Spider?

Beitrag von stevie1401 »

Ja, das war mir schon klar.
Bei mir klemmte es bei dem Gedanken, dass ich erst einmal abwarten muss, dass das Bild geladen ist, um es dann benutzen zu können.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Base64Decoder für Spider?

Beitrag von ccode_new »

stevie1401 hat geschrieben:Bei mir klemmte es bei dem Gedanken, dass ich erst einmal abwarten muss, dass das Bild geladen ist, um es dann benutzen zu können.
Das kann ich sehr gut nachvollziehen.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Antworten