[Python] Aiuto PIL

Giovanni Vittorio Spina vittorio.spina a gmail.com
Mar 23 Lug 2013 09:13:01 CEST


> 2013/7/22 Carlo Miron <miron a python.it>
>> Il 22 luglio 2013 20:22, Marco Beri <marcoberi a gmail.com> ha scritto::
>> 
>> > On Mon, Jul 22, 2013 at 6:15 PM, Vittorio Spina <vittorio.spina a gmail.com>
>> > wrote:
>> >>
>> >> def TranlsateImage(im):
>> >>     stringImage=bytes()
>> >>     for pixel in list(im.getdata()):
>> >>         H=(pixel[2]&248)|pixel[1]>>5
>> >>         L=((pixel[1]<<3)&224)|pixel[0]>>3
>> >>         stringImage+=struct.pack('<B',H)
>> >>         stringImage+=struct.pack('<B',L)
>> >>     return stringImage
>> >> alla quale passo una immagine PIL come argomento (im).
>> >
>> >
>> > La funzione, ad un primo sguardo, sembra degradare l'immagine.
>> >
>> > L'istruzione H=(pixel[2]&248)|pixel[1]>>5 nei fatti azzera i 3 bit meno
>> > significativi di pixel[2] (che credo sia la componente blu del pixel).
>> 
>> Premetto che non conosco l'API di PIL, ma la scelta delle lettere mi
>> fa pensare piu` alla codifica HSL_ che a quella RGB.
> 
> Io invece credo che il tizio che ha scritto la funzione volesse compattare le tre componenti di un pixel (getdata ritorna RGB) in due byte chiamati High e Low.
> 
Allora, può essere che la funzione degradi le immagini, ma non si può far meglio perchè quelle immagini vanno su un device che le piglia così e le renderizza su dei micromonitors oled.
Quello che mi piacerebbe è avendo il formato ritornato dalla funzione, riuscire a salvare un jpg 64x48 (questa è la dimensione delle immagini) in modo da rendere disponibile un preview dal programma utente che pilota il microcontrollore. Spero di essermi spiegato.
Grazie

Giovanni Vittorio Spina
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130723/a822e474/attachment.html>


Maggiori informazioni sulla lista Python