2011年1月16日日曜日

posterでVideoCaptureの撮影画像を自動アップロードする

multipart/form-dataでファイルをアップロードするのにposterを使ってみた。
saveSnapshotはファイルライクオブジェクトに保存する事も出来ます。

# -*- coding: utf-8 -*-
# test_client1.py 2011.1.16
import VideoCapture
import poster
import urllib2,time,cStringIO,datetime

devnum = 2 # ManyCam
url = "http://localhost:8083/upload"

cam = VideoCapture.Device(devnum)
for n in range(0,10000):
    output = cStringIO.StringIO()
    cam.saveSnapshot(output, format="JPEG" timestamp=1)
    dt = datetime.datetime.now()
    # Register the streaming http handlers with urllib2
    poster.streaminghttp.register_openers()
    p1 = poster.encode.MultipartParam("image_data", 
        fileobj=output,
        filename=dt.strftime("%Y%m%d_%H%M%S.jpg"))
    datagen,headers = poster.encode.multipart_encode([p1])
    request = urllib2.Request(url, datagen, headers)
    response = urllib2.urlopen(request)
    print response.read()
    time.sleep(10)

0 件のコメント: