[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