Проблема торнадо с плагином jQuery для веб-камеры - PullRequest
0 голосов
/ 21 августа 2011

Я использую Tornado Webserver и плагин jQuery Webcam.

Все идет хорошо, за исключением того, что я не думаю, что правильно получаю необработанные данные. Я получаю «FFD8FFE000104A46494600010100000100010000FFDB0084000503040404030504040405050506070C08070707070F0B0B090C110F1212110F111113161C1713141A1511111821181A1D1D1F1F1F13172224221E241C1E1F1E010505050706070E08080E1E1411141E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1» для моих данных.

интерфейс:

$("#camera").webcam({width: 320,
            height: 240,
            mode: "save",
            swffile: "/static/js/jscam.swf",
            onTick: function() {
            alert('OnTick');},
            onCapture: function() {
                webcam.capture();
                var x = webcam.save('/saveimage');
            },
            onDebug: function(type, string) {
            alert('error');
            alert(type + ": " + string);}, 
        });

бэкенд:

filecontent = self.request.body f = open('static/studentphotos/'+ filename +'.jpg','w') f.write(filecontent) f.close()"

1 Ответ

0 голосов
/ 21 августа 2011

Используя ваши данные как x, обратите внимание на JFIF в выходных данных unhexlify :

In [88]: binascii.unhexlify(x[:-1])
Out[88]: '\xff\xd8\xff\xe0\x00\x10JFIF...'

Таким образом, похоже, что данные представляют собой JPEG, который должен быть unhexlified,Поэтому попробуйте:

import binascii
filecontent = self.request.body 
with open('static/studentphotos/'+ filename +'.jpg','w')  as f:
    f.write(binascii.unhexlify(filecontent))
...