Öffnen und speichern Sie den base64-kodierten Bilddaten-URI in Ruby

8

Aus mehreren Posts, die ich gesehen habe, versuche ich das

%Vor%

Aber dann kann ich das Bild nicht mit einem Betrachter öffnen, muss ich etwas mehr tun?

    
juanpastas 14.04.2013, 02:11
quelle

4 Antworten

23

Ihr Problem ist, dass Sie versuchen, das Präfix 'data:image/png;base64,' als Base64-Daten zu dekodieren; Dieses Präfix ist eine gültige Base64-Daten, aber es ist nicht die Base64-Darstellung einer PNG-Datei. Das Ergebnis ist, dass Ihre test.png -Datei eine Menge Unsinn enthält, gefolgt von einigen Bits, die tatsächlich eine PNG-Datei sind. Entfernen Sie das Daten-URL-Präfix, bevor Sie das PNG dekodieren:

%Vor%     
mu is too short 14.04.2013, 02:59
quelle
5

mu_is_too_short Antwort ist ziemlich nahe, aber es wird davon ausgegangen, dass base64-Stream PNG-Daten enthalten wird. Dies ist nicht immer der Fall, also schlage ich vor, Mime-Typen-Bibliothek zu verwenden, um korrekte Dateierweiterung zu etablieren:

%Vor%     
Piotr Kuczynski 20.02.2016 00:54
quelle
1
___ qstntxt ___

Aus mehreren Posts, die ich gesehen habe, versuche ich das

%Vor%

Aber dann kann ich das Bild nicht mit einem Betrachter öffnen, muss ich etwas mehr tun?

    
___ answer38706212 ___

Das ist ein kleines Skript zum Öffnen von base64-Bildern, vacio.txt ist die Datei, wenn ich den base64-Text habe.

%Vor%     
___ tag123ruby ___ Ruby ist eine multi-plattform Open-Source, dynamische objektorientierte interpretierte Sprache, erstellt von Yukihiro Matsumoto (Matz) im Jahr 1995. Die [Ruby] -Tag ist für Fragen im Zusammenhang mit der Ruby-Sprache, einschließlich seiner Syntax und seiner Bibliotheken . Fragen speziell zum Ruby-on-Rails-Framework sollten mit [ruby-on-rails], nicht [ruby] getaggt werden. Verwenden Sie dies nicht, um Ruby in der japanischen Sprache zu markieren. ___ tag123file ___ Ein Block beliebiger Informationen oder Ressourcen zum Speichern von Informationen, auf die der stringbasierte Name oder Pfad zugreifen kann. Dateien stehen Computerprogrammen zur Verfügung und basieren normalerweise auf einer Art persistentem Speicher. ___ tag123base64 ___ Base64 ist ein Satz von Codierungsschemas, die binäre Daten in einem ASCII-String-Format darstellen. ___ answer15995309 ___

Ihr Problem ist, dass Sie versuchen, das Präfix Regexp als Base64-Daten zu dekodieren; Dieses Präfix ist eine gültige Base64-Daten, aber es ist nicht die Base64-Darstellung einer PNG-Datei. Das Ergebnis ist, dass Ihre .toDataURL() -Datei eine Menge Unsinn enthält, gefolgt von einigen Bits, die tatsächlich eine PNG-Datei sind. Entfernen Sie das Daten-URL-Präfix, bevor Sie das PNG dekodieren:

%Vor%     
___ qstnhdr ___ Öffnen und speichern Sie den base64-kodierten Bilddaten-URI in Ruby ___ answer35517759 ___

mu_is_too_short Antwort ist ziemlich nahe, aber es wird davon ausgegangen, dass base64-Stream PNG-Daten enthalten wird. Dies ist nicht immer der Fall, also schlage ich vor, Mime-Typen-Bibliothek zu verwenden, um korrekte Dateierweiterung zu etablieren:

%Vor%     
___
whitehat101 12.12.2016 21:33
quelle
0

Das ist ein kleines Skript zum Öffnen von base64-Bildern, vacio.txt ist die Datei, wenn ich den base64-Text habe.

%Vor%     
alex pin 01.08.2016 18:59
quelle

Tags und Links