18/07/2016, 17:04 
(Questo messaggio è stato modificato l'ultima volta il: 25/07/2016, 18:30 da NDraspy.)
		
	
	
		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
quando lancio
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:
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?
	
	
	
	
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?

![[-] [-]](https://forum.raspberryitaly.com/images/square/collapse.png)

  Facebook
			
  Twitter
			
  Google +
				
  Youtube
			
  Telegram