Base64Decoder für Spider?

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

Base64Decoder für Spider?

Beitrag von stevie1401 »

Mit diesem Code kann ich mit Purebasic einen Base64-String zurück in ein Image verwandeln.

Code: Alles auswählen


Procedure.i DecodeStringToImage(String.s)
   Protected Image.i, Length.i, *Buffer = AllocateMemory(Len(String)+64) ; Puffergröße muss min. 64 Byte sein.
   Length = Base64Decoder(String, *Buffer, MemorySize(*Buffer))
   Image = CatchImage(#PB_Any, *Buffer, Length)
   FreeMemory(*Buffer)
   ProcedureReturn Image
EndProcedure

Gibt es das auch für Spider?

Ich habe das gefunden:

Code: Alles auswählen



Procedure.s Base64EncodeString(Input.s)
  !  return btoa(encodeURIComponent(v_input).replace(/%([0-9A-F]{2})/g,
  !    function toSolidBytes(match, p1) {
  !      return String.fromCharCode('0x' + p1);
  !  }));
EndProcedure

Procedure.s Base64DecodeString(Input.s)
  !  return decodeURIComponent(atob(v_input).split('').map(function(c) {
  !    return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
  !  }).join(''));
EndProcedure

Aber da bringt der Base64DecodeString ja auch nur wieder einen String aus.
Hat jemand eine Idee?
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 »

Und schon kommt Hilfe.

Code: Alles auswählen

Procedure Loaded(Type, Filename$, ObjectId)
  
  OpenWindow(#PB_Any, 10, 10, 300, 300, "Image", #PB_Window_SizeGadget)
  ImageGadget(#PB_Any, 0, 0, ImageWidth(ObjectId), ImageHeight(ObjectId), ImageID(ObjectId))
  
EndProcedure

Procedure LoadingError(Type, Filename$, ObjectId)
  Debug Filename$ + ": loading error"
EndProcedure


BindEvent(#PB_Event_Loading, @Loaded())
BindEvent(#PB_Event_LoadingError, @LoadingError())

;Übergebe einfach dein Bild als gültige BASE64-URL.
;Hier ist ein Beispiel.
LoadImage(0, "data:image/png;base64,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")

;Exportiere dein Bild (als Download). (Achte auf die Dateiendung bei "data:image/". Hier ist es die Dateiendung ".png".)
ExportImage(0, "bild.png", #PB_ImagePlugin_PNG)
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 »

Hm, erst einmal Danke für deine Hilfe.
Aber ich möchte das Bild nicht herunterladen.
Ich bekomme ein Bild via Bas64-String vom Server über einen Websocket und möchte es nun in ein Imagegadget legen.
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 »

Das Beispiel zeigt die Lösung bereits.
Du musst maximal deinen Ausgangsstring noch URL konform anpassen. (Zum Beispiel mit den üblichen Zeichenkettenfunktionen)
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 »

Ah Raterunde.
Steh ich nicht so drauf.
Kann mir jemand sagen, am besten anhand eines nachvollziehbaren Beispiels, wie ich ein base64-codiertes Bild in ein Imagadget legen kann?
Merci.
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 »

Was macht die Funktion LoadImage?
Wie zeige ich ein Bild was mit LoadImage geladen wurde in einem ImageGadget an?

Alles solche unbeantwortete Fragen.

:mrgreen:
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 »

Hat ausser diesem lustigen Ratefuchs jemand ein nachvollziehbares Beispiel parat?
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 »

Erstens: Frohe Ostern!
Zweitens: Zeig mal eine Beispiel-Base64-Zeichenkette die du in einem Image-Gadget (als Bild) darstellen möchtest.

Mal sehen was so geht.
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 im Spiderforum jetzt folgendes gefunden:

Code: Alles auswählen


EnableExplicit

Define pic.s

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


Procedure CatchImageExCallback(Image)
 
  OpenWindow(#PB_Any, 10, 10, 300, 300, "Image", #PB_Window_SizeGadget)
  ImageGadget(#PB_Any, 0, 0, ImageWidth(Image), ImageHeight(Image), ImageID(Image))
 
EndProcedure


Procedure CatchImageEx(Image, Base64String.s, Callback)
 
  Protected W, H, IID
 
  ! var i = new Image();
 
  ! i.onload = function(){
  !   v_w = i.width;
  !   v_h = i.height;
 
  If Image = #PB_Any
    Image = CreateImage(#PB_Any, W, H)
  Else
    CreateImage(Image, W, H)
  EndIf
 
  IID = ImageID(Image)
 
  !   v_iid.getContext("2d").drawImage(i, 0, 0);
  !   v_callback(v_image);
  ! };
 
  ! i.src = "data:image/png;base64," + v_base64string;
 
EndProcedure

CatchImageEx(0, pic, @CatchImageExCallback())




Ich kann das Callback aber nicht gebrauchen, da das der falsche Aufruf wäre.

Ich denke in der Procedure CatchImageEx(Image, Base64String.s, Callback) wird das Image gezeichnet, aber ich komme ums Verrecken einfach nicht an das Bild.
Ich brauche die Procedure CatchImageEx() mit einem Image als ProcedureReturn.

In der Procedure CatchImageExCallback() kann ich das Image tatsächlich sehen.
Kopiere ich es aber und möchte das Image in einer anderen Procedure verwenden, funktioniert es nicht.


(Loadimage() funktioniert definitiv NICHT)
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 »

LoadImage() funktioniert definitiv doch.
Du musst aber auch diese Zeile:

Code: Alles auswählen

 "data:image/png;base64," + v_base64string;
beachten!

Aufgeteilt:
Das Wort: data
Das Zeichen: :
Der Datentyp: image
Das Zeichen: /
Der genaue Typ (Dateiendung): png
Das Zeichen: ;
Die Kodierung: base64
Das Zeichen: ,
Dein in Base64 kodierter String
Betriebssysteme: div. Windows, Linux, Unix - Systeme

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