Encode/decode base 64 images
Hi there!
I'd like to encode/decode base 64 images.
I tried to use QByteArray::fromBase64(), but there is a problem : when run it on
(in one line)
Code:
R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAwAAAC8IyPqcvt3wCcDkiLc7C0qwyGHhS
WpjQu5yqmCYsapyuvUUlvONmOZtfzgFzByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/De
uNcP5yLWGsEbtLiOSpa/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJ
lZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uisF81M1OIcR7lEeww
cLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PHhhx4dbgYKAAA7
it returns :
Code:
u«Z?f {úg¶¬{®"T?ÃB???
I compared with other tools that can convert base 64 images, and it is not correct.
Any idea :confused:
Re: Encode/decode base 64 images
try an example from this thread, probably it should help you.
Re: Encode/decode base 64 images
thank you.
I tried QImage::fromData(QByteArray("some base64 data"), "jpg"); but the image I get is corrupted according to paint.
Re: Encode/decode base 64 images
where did you get this base64 data? maybe this data has some additional header?
Re: Encode/decode base 64 images
I found the data here : http://davidbetz.net/Base64PngExample/Client/
I just typed "a", then I removed
Code:
data:image/png;base64,
ie I have this
Code:
iVBORw0KGgoAAAANSUhEUgAAAlgAAABkCAYAAABaQU4jAAAAAX etc
Re: Encode/decode base 64 images
this code works fine
Code:
...
QByteArray by
= QByteArray::fromBase64("iVBORw0KGgoAAAANSUhEUgAAAlgAAABkCAYAAABaQU4jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAABblJREFUeF7t3M1RwkAYBmDuXjzqgXiyARuwAiugAzuwBwdwxps10ARd0EwiX2AxxKCEmRB+Hmcy4yTLZvMsh3c2HzsY+CNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQu8DtZ3GTfRRPXQ4k+r9/zx+r92g61+UY9E2AAAECBAgQOJrAcJq/ZdOi6DJkZZN8sTzmWwGr4dzRHtqNCBAgQIAAAQJdCghYXerqmwABAgQIELhKAQHrKqfdQxMgQIAAAQJdCtQDVtRKxevCfV4ZDsf5XWpbr7H673Vg02vDLp9T3wQIECBAgACBowmkgPUwKZ6Hk3xW1mOlI+qkdhTAl23j+nb7eVN7NVhHm043IkCAAAECBE5BYLOCtS46z6b5KEJS5fxWcXqMOQrWI1gtQ9ZXWsGq9hMrW1awTmF2jYEAAQIECBDoRWCfIFVdlUrtI1zVB5yN89d18JoJWL1Mp5sSIECAAAECpyDwV5F7WqmqBqx0blfN1fp14ELAOoXZNQYCBAgQIECgF4EDAtaq7ipeEzYf5fVqAFOD1cvUuikBAgQIECDQl0AHAasMXgJWXzPqvgQIECBAgEDvAgcFrGVBfJuBW8Fqo6UtAQIECBAgcPYCbQPWz1YO+ajp4aO/OKrXBKyz/5p4AAIECBAgQKCNQNuAFftlpRqsX9sx+BVhG3ptCRAgQIAAgUsVaBuwwqHc/2pV6L6I/8tVq7RJ6fJc/ReGVrAu9dvjuQgQIECAAIFGgXLvqlpRempYBqnd1142u7mvNildha3aJqPrQDar75sVn23aS8s0ESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBwrQLfmeUk6E23pFsAAAAASUVORK5CYII=");
label.
setPixmap(QPixmap::fromImage(image
));
label.show();
...
I've just inputted "hello" in that link then copied base64 data after "data:image/png;base64,".
Re: Encode/decode base 64 images
btw, if you enter just one character then you will not get an image on that site, you should enter more then one character, I don't know why.
PS. when I entered "hello" I saw only "hell" in preview and I've got the same image in a label.