[Python] Aiuto PIL SOLVED

Vittorio Spina vittorio.spina a gmail.com
Mer 24 Lug 2013 09:33:15 CEST



Il 23/07/2013 21:41, Valerio Maggio ha scritto:
>
> On Jul 23, 2013, at 9:35 PM, Marco Beri <marcoberi a gmail.com 
> <mailto:marcoberi a gmail.com>> wrote:
>
>> Il giorno 23/lug/2013 20:08, "Valerio Maggio" 
>> <valerio.maggio a gmail.com <mailto:valerio.maggio a gmail.com>> ha scritto:
>>
>> > [Stackoverflow]Using numpy and pil to convert 565(16bit-color) to 
>> 888(24bit-color) (credo sia l'esatto opposto di quello che serve a 
>> te, btw :-)
>>
>> Uhm... Direi che invece è proprio quello che voleva fare lui: passare 
>> da 565 a 888. O almeno questo è quello che fa la funzione che ho 
>> scritto e che a Vittorio andava bene :-)
>>
>>
> Ah, ok.. beh, meglio così allora! ;)
> Avevo capito che lui volesse comprimere l'informazione dell'immagine 
> per mostrarla su dispositivi di piccole dimensioni - ma ammetto di 
> aver letto la discussione di fretta e tutta insieme perdendomi 
> probabilmente qualche pezzo ;)
>
> --
> Valerio
>
Tanto per concludere la cosa, la funzione che mi ha mandato Marco è 
perfetta e funziona come deve. Le immagini RGB565 sono obbligate sui 
micromonitor che accettano solo quel formato. La funzione che mi serviva 
ritrasforma le RGB565 in un formato visualizzabile al volo in modo da 
capire di cosa si tratta. Per questo eventuali degradamenti non sono un 
grosso problema.
Tanto per chiudere il thread, ripasto un microprogrammino che contiene 
anche la funzione di Beri (Recover).


     def TranlsateImage(im):        #trasforma una immagine in 565
         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

     def RecoverImage(stringImage, width=64, height=48): #riporta 
l'immagine nel formato leggibile 888
         img = Image.new("RGB", (width, height))
         data = []
         for i in range(0, len(stringImage), 2):
             H, L = struct.unpack_from("<BB", stringImage, i)
             pixel_2 = H&248
             pixel_1 = (H&7<<5)|((L&224)>>3)
             pixel_0 = (L&31)<<3
             data.append((pixel_0, pixel_1, pixel_2))
         img.putdata(data)
         return img

vittorio

-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130724/022feb4d/attachment-0001.html>


Maggiori informazioni sulla lista Python