我在nodejs中搜索一種方法,在imagemagick https://github.com/rsms/node-imagemagick的幫助下將svg轉換爲png,而不將結果png存儲在本地文件系統的臨時文件中。svg to png在node.js中用imagemagick轉換
不幸的是,我無法做到這一點。我在互聯網上找不到例子。有人能給我一個例子嗎?
我在nodejs中搜索一種方法,在imagemagick https://github.com/rsms/node-imagemagick的幫助下將svg轉換爲png,而不將結果png存儲在本地文件系統的臨時文件中。svg to png在node.js中用imagemagick轉換
不幸的是,我無法做到這一點。我在互聯網上找不到例子。有人能給我一個例子嗎?
o我找到了我在找的東西。基本上,我想出瞭如何將數據傳送到轉換執行的std :: in。這使我可以在不訪問本地文件系統的情況下轉換圖像。
這裏是我的演示代碼:
var im = require('imagemagick');
var fs = require('fs');
var svg = fs.readFileSync('/somepath/svg.svg', 'utf8');
var conv = im.convert(['svg:-', 'png:-'])
conv.on('data', function(data) {
console.log('data');
console.log(data);
});
conv.on('end', function() {
console.log('end');
});
conv.stdin.write(svg);
conv.stdin.end();
您還可以使用流並將結果傳遞到某處而不將結果存儲爲臨時文件。下面是一些示例代碼取從github repo
var fs = require('fs');
im.resize({
srcData: fs.readFileSync('kittens.jpg', 'binary'),
width: 256,
format: 'png'
}, function(err, stdout, stderr){
if (err) throw err
fs.writeFileSync('kittens-resized.png', stdout, 'binary'); // change this part
console.log('resized kittens.jpg to fit within 256x256px')
});
BTW:你的錄取率是0%
var im = require('imagemagick');
var fs = require('fs');
im.convert(['foo.svg', 'png:-'],
function(err, stdout){
if (err) throw err;
//stdout is your image
//just write it to file to test this:
fs.writeFileSync('test.png', stdout,'binary');
});
它只是拋出的「原始」的論點在命令行convert
,所以對於任何問題,看看convert的文檔吧。
這一個工作。謝謝 –