gpt4 book ai didi

javascript - NodeJS 将 Base64 字符串转换为 jpeg 图像 - NodeJS 或 mysql

转载 作者:行者123 更新时间:2023-11-30 21:54:03 27 4
gpt4 key购买 nike

我已将 jpeg 图像以 longblob 格式存储在 mysql 数据库中...现在我阅读了该 longblob 并想检索 jpeg 图像以查看它的外观..我只得到 base64 字符串所以如何在 mysql 或 Node 中转换它js?

这是我从数据库中读取的 base64 字符串:

https:// jsfiddle.net/ ej4c9pk3/

如何将它解码为 jpeg 图像,以便我可以看到它的外观,然后我可以在网页上显示它。

图像 base64 文本在链接上...因此您可以看到它并尝试将其解码为 jpeg。

最佳答案

我编写了将 Base64 字符串转换为 Base64 十六进制字符串的函数,现在它已正确转换为显示为 BLOB png 图像...但问题是当我在 DB Browser 中为 SQLite 打开字段时,它将此转换后的值写入为文本,并且必须写成二进制(这样当我在 SQLIte 的数据库浏览器中选择图像时图像将被识别和显示...所以问题是我如何将 Base64 十六进制字符串作为二进制插入 SQLite3 数据库?

这是我的插入代码:

/* GET - channels_logo */
for (var i in rows) {
/* WRITE - table channels_logo */
db.prepare('INSERT INTO channels_logo (logo_id, logo_channel, logo_png) VALUES
("'+rows[i].id+'", "'+rows[i].channel+'", "'+(base64toHex(new Buffer(rows[i].logo).toString()))+'")').run();
};

function base64toHex(base64) {
/* DEFINE - variables */
var raw = atob(base64);
var HEX = '';

for (i = 0; i < raw.length; i++) {
var _hex = raw.charCodeAt(i).toString(16)

HEX += (_hex.length==2?_hex:'0'+_hex);
};
return HEX.toUpperCase();
};

[![Using this insert code is inserted as Text:][1]][1]

/image/iZ2A1.jpg

[![And needs to be binary inserted and now it looks ok (i just erase text and copy text inserted into binary and now it works)][1]][1]


/image/ZzGTU.jpg

所以我看到 SQLite3 显示插入的 Base64 十六进制作为文本而不是二进制...我需要在插入语句中写什么才能将其作为二进制插入?

关于javascript - NodeJS 将 Base64 字符串转换为 jpeg 图像 - NodeJS 或 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45998107/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com