• 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:
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect