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

标签 javascript mysql node.js image

我已将 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/

相关文章:

mysql - 从一个表中删除另一个表中不存在的所有记录

php - 使用 jQuery 按行和列插入值

node.js - 如何使用 nodejs/aws-sdk 将 base64 编码的 pdf 直接上传到 s3?

node.js - 为什么 nodemailer 模块无法在 Google 应用引擎上运行?

node.js - 从nodejsexpress登录cakephp

javascript - 使用调试器从内部函数调用外部函数中定义的变量

javascript - 将字符串转换为 json 对象

php - MySQL SELECT 两个值之间的行

javascript - AngularJS - 无法删除小数点后的数字

javascript - jQuery 两个下拉菜单? (动态地)