Questo forum utilizza i cookies
Questo forum fa uso di cookie per migliorare l'esperienza utente. I cookie sono piccoli file di testo memorizzati sul tuo browser. I cookie impostati dal forum possono essere utilizzati solo su questo sito e non costituiscono rischio per la sicurezza, vengono utilizzati unicamente per memorizzare le tue preferenze. Navigando sul sito accetti che RaspberryItaly installi i cookie sul tuo browser.
Per maggiori informazioni consulta l'informativa sui Cookie di RasberryItaly

Un cookie verra memorizzato nel browser indipendentemente dalla scelta per evitare che questa domanda ti venga posta di nuovo. Sarai in grado di modificare le impostazioni dei cookie in qualsiasi momento utilizzando il link nel footer.
  • Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
bytes jpeg

[Risolto] bytes jpeg
#1
Salve a tutti
non sapevo bene come esprimere il concentto nel titolo del posto...
cmq

il mio problema è il seguente:

voglio registrare un'immagine jpeg catturata con la telecamera all'interno di una lista.
Nella documentazione l'output per la telecamera accetta un aggetto con un metodo write, per questo ho creato una classe con un metodo write che non fa altro che aggiungere i dati ricevuti in una lista

Codice:
class myFile(object):
   '''Class to create special like-file object to store camera frame in a
list object.'''

   _buffer=[]
   _size=None

   def __init__(self,maxsize=None):
       '''maxsize: maximun lenght of buffer; when the length's buffer is biggest of maxsize
        the buffer is reset.'''
       self._size=maxsize
   
   def write(self,b):
       '''Append "b" valuen in the buffer. If the maxsize is passed
the buffer is reset'''
       if self._size and len(self._buffer)>self._size:
           self._buffer=[]      
       self._buffer.append(b)

   @classmethod
   def empyBuffer(cls):
       cls._buffer=[]
       return cls._buffer
   
   @classmethod
   def getBuffer(cls,pos=None,rng=None):
       '''Return the buffer.
   pos: the start position
   rng: lenght of range value to return
   
   '''
       n=len(cls._buffer)
       if not pos:
           if not rng or rng<=0:
               return cls._buffer
           else:
               return cls._buffer[n-rng:n]
       elif pos<0:
           return cls._buffer[-1]
       elif pos>0 and rng>pos:
           return cls._buffer[pos:pos+rng]
       else:
           return cls._buffer[pos]

quando lancio

Codice:
picamera.PiCamera(myFile(),format='jpeg')

in effetti mi ritrovo nella lista myFile._buffer, la stringa con i byte che compongono l'immagnine.
poi ho provato a creare l'immagine jpeg cosi:
Codice:
ff=open("myfile.jpeg","wb")
ff.write(myFile._buffer[0])
ff.close()

ovviamente non funziona l'immagine non è visualizzabile
ho provato ad aggiungere manualmente all'inizio dell'immagine 0xFF 0xD8 0xFF e alla fine il 0xD9

ma niente lo stesso.

qualche idea?
Risposta
#2
Risolto da solo

giocando con
Codice:
bytearray()
e
Codice:
bytes()
son riuscito a combinare qualcosa
metto risolto
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect