admin管理员组文章数量:1316682
I am accessing third party database where there are images stored in varbinary column. I am writing node.js application to restore varbinary images stored in MS Sql server into .jpg file.
When I query varbinary is returned as buffer but from buffer I am not able to restore image into .jpg file.
For MS Sql server access i am using libray.
[UPDATE:]: Below are the some of the ways I tried to convert and save as Image.
var decodedImage = new Buffer(varbinaryBufferReturedFromDatabase, 'base64');
var decodedImage = new Buffer(varbinaryBufferReturedFromDatabase, 'hex');
var decodedImage = new Buffer(varbinaryBufferReturedFromDatabase, 'uft8');
var decodedImage = varbinaryBufferReturedFromDatabase.toString('hex');
var decodedImage = varbinaryBufferReturedFromDatabase.toString('base64');
var decodedImage = varbinaryBufferReturedFromDatabase.toString('uft8');
fs.writeFile(__dirname+'/../public/images/img3.jpg', decodedImage, function(err, data){
if (err) throw err;
console.log('It\'s saved!');
cb(data);
});
I am accessing third party database where there are images stored in varbinary column. I am writing node.js application to restore varbinary images stored in MS Sql server into .jpg file.
When I query varbinary is returned as buffer but from buffer I am not able to restore image into .jpg file.
For MS Sql server access i am using https://www.npmjs./package/mssql libray.
[UPDATE:]: Below are the some of the ways I tried to convert and save as Image.
var decodedImage = new Buffer(varbinaryBufferReturedFromDatabase, 'base64');
var decodedImage = new Buffer(varbinaryBufferReturedFromDatabase, 'hex');
var decodedImage = new Buffer(varbinaryBufferReturedFromDatabase, 'uft8');
var decodedImage = varbinaryBufferReturedFromDatabase.toString('hex');
var decodedImage = varbinaryBufferReturedFromDatabase.toString('base64');
var decodedImage = varbinaryBufferReturedFromDatabase.toString('uft8');
fs.writeFile(__dirname+'/../public/images/img3.jpg', decodedImage, function(err, data){
if (err) throw err;
console.log('It\'s saved!');
cb(data);
});
Share
Improve this question
edited Dec 8, 2016 at 15:28
vmasule
asked Dec 8, 2016 at 15:03
vmasulevmasule
991 gold badge1 silver badge7 bronze badges
3
- 1 Show us the (simplest plete version of) the code you're trying to use to do it, so we can help you see what's wrong with it. More: minimal reproducible example – T.J. Crowder Commented Dec 8, 2016 at 15:06
- This might be of use to you. stackoverflow./questions/14915058/… – Neo Commented Dec 8, 2016 at 15:15
- @T.J.Crowder I have updated code I have tried so far to convert to images. – vmasule Commented Dec 8, 2016 at 15:51
1 Answer
Reset to default 6Resolved It was difficult until I studied how Encoding/Decoding and varbinary works.
Solution : Images were stored as hexadecimal numbers representation of base64 encoded string in Sql server as data type varbinary. While fetching record node.js mssql library converts the hexadecimal numbers into javascript buffer(This buffer is of base64 encoded string and not actual image). Then I converted this buffer back to base64 encoded string of image like..
var originalBase64ImageStr = new Buffer(resultSet[0].Image).toString('utf8');
Then created converted back to actual image buffer like..
var decodedImage = new Buffer(originalBase64ImageStr , 'base64')
fs.writeFile(__dirname+'/../public/images/img3.jpg', decodedImage, function(err, data){
if (err) throw err;
console.log('It\'s saved!');
cb(data);
});
Note: Node.js mssql library works differently for string representation of varbinary(returned buffer is representation of original string so no need to follow above steps) and image/doc representation of varbinary(returned buffer is representation of base64 encoded string and need to follow above steps).
本文标签: javascriptNodejs How to convert to image from varbinary of MS Sql server datatypeStack Overflow
版权声明:本文标题:javascript - Node.js How to convert to image from varbinary of MS Sql server datatype - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742006175a2412000.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论