node.js / gphoto2 - как сохранить файл (jpg)
Я пытаюсь создать веб-интерфейс для canon eos 7d, используя node.js (0.10.20), libgphoto2 (2.5.2.) И модуль gphoto2 для узла на Raspberry Pi (последний raspbian).
Кажется, все работает нормально, за исключением сохранения файлов в узле.
я использую следующий фрагмент кода:
app.get('/shoot', function(req, res){
camera.takePicture({download:true}, function(er, data){
res.header('Content-Type', 'image/jpeg');
res.send(data);
fs.writeFile("public/images/sampleImg.jpg", data);
});
});
Созданный файл не читается / не является допустимым изображением JPG
использование инструмента cli для libgphoto создает правильное изображение:
pi@raspi /srv/node/eos $ gphoto2 --capture-image-and-download
поэтому я предполагаю, что ошибка где-то в коде узла для сохранения данных
Как правильно сохранить данные в узле в файл.jpg?
1 ответ
Я работаю над чем-то очень похожим. Кажется, я помню, что мне нужно было указать, что данные с камеры были двоичными, что-то вроде:
app.get('/shoot', function(req, res){
camera.takePicture({download:true}, function(er, data){
res.header('Content-Type', 'image/jpeg');
res.send(new Buffer(data, 'binary'));
fs.writeFile(
"public/images/sampleImg.jpg",
new Buffer(data, 'binary'),
function (err){}
);
});
});
Стреляй мне по электронной почте, если вы хотите сотрудничать.
http://tonyspiro.com/uploading-and-resizing-an-image-using-node-js/ http://lists.basho.com/pipermail/riak-users_lists.basho.com/2011-May/004270.html