Il 23/07/2013 21:41, Valerio Maggio ha scritto:
On Jul 23, 2013, at 9:35 PM, Marco Beri <marcob...@gmail.com
<mailto:marcob...@gmail.com>> wrote:
Il giorno 23/lug/2013 20:08, "Valerio Maggio"
<valerio.mag...@gmail.com <mailto:valerio.mag...@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
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python