[Python] Download jpg da socket

Daniele Varrazzo piro a develer.com
Mer 23 Gen 2013 16:43:56 CET


On 2013-01-23 16:25, piergiorgio pancino wrote:
> Ciao a tutti,
> voglio scrivere un piccolo programma che mi visualizzi una serie di
> immagini prelevate da telecamere per la videosorveglianza.
> Ho scoperto che inviando una richiesta html alla telecamera con
> alcuni parametri (es. risoluzione e qualità) la stessa mi ritorna una
> immagine jpg.
> L'idea che mi è venuta è quella di fare una serie di richieste a
> tutte le telecamere e impaginare con pygame il tutto.
>
> La connessione avviene tramite socket e per ottenere la pagina invio
> una richiesta di questo tipo:
>
> image_sock.connect(address)
>
> image_sock.send(b'GET
> /image?res=half&x0=0&y0=0&x1=800&y1=600&quality=12&doublescan=0\r\n
> .......')
>
>
> la telecamera mi risponde inviando i dati dell'immagine sempre
> attraverso il socket, il problema è però che mi invia anche un 
> qualche
> tipo di intestazione perché se questi dati li salvo su file e provo 
> ad
> aprire l'immagine essa non viene riconosciuta.
> Quando vado ad aprire ciò che viene salvato infatti vedo qualcosa di
> questo tipo:
>
> HTTP/1.0 200 OK\r\nContent-Type:
> image/jpeg\r\n\r\n\xff\xd8\xff\xdb\x00\x84\x00\x0f (omissis 20kb di
> caratteri)
>
> Da quello che ho letto immagino faccia parte della risposta del
> protocollo html.
> Avrei la necessità di estrarre il jpg da questi dati, se riesco a
> farlo il resto è una cazzata.
> Avreste un consiglio da darmi su come estrarre questo jpg?

Usa urllib2.open invece dei socket. Non reimplementare un client html.


-- 
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com


Maggiori informazioni sulla lista Python