[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