<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<br>
Il 23/07/2013 21:41, Valerio Maggio ha scritto:
<blockquote
cite="mid:31AA0F27-2500-406E-A040-A47D6418E1D9@gmail.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<br>
<div>
<div>On Jul 23, 2013, at 9:35 PM, Marco Beri <<a
moz-do-not-send="true" href="mailto:marcoberi@gmail.com">marcoberi@gmail.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<p dir="ltr">Il giorno 23/lug/2013 20:08, "Valerio Maggio"
<<a moz-do-not-send="true"
href="mailto:valerio.maggio@gmail.com">valerio.maggio@gmail.com</a>>
ha scritto:</p>
<p dir="ltr">> [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 :-)</p>
<p dir="ltr">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 :-)</p>
<div><br>
</div>
</blockquote>
Ah, ok.. beh, meglio così allora! ;)</div>
<div>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 ;)</div>
<div><br>
</div>
<div>--</div>
<div>Valerio</div>
<div><br>
</div>
</blockquote>
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.<br>
Tanto per chiudere il thread, ripasto un microprogrammino che
contiene anche la funzione di Beri (Recover).<br>
<br>
<br>
def TranlsateImage(im): #trasforma una immagine in 565<br>
stringImage=bytes()<br>
for pixel in list(im.getdata()):<br>
H=(pixel[2]&248)|pixel[1]>>5<br>
L=((pixel[1]<<3)&224)|pixel[0]>>3<br>
stringImage+=struct.pack('<B',H)<br>
stringImage+=struct.pack('<B',L)<br>
return stringImage<br>
<br>
def RecoverImage(stringImage, width=64, height=48): #riporta
l'immagine nel formato leggibile 888<br>
img = Image.new("RGB", (width, height))<br>
data = []<br>
for i in range(0, len(stringImage), 2):<br>
H, L = struct.unpack_from("<BB", stringImage, i)<br>
pixel_2 = H&248<br>
pixel_1 = (H&7<<5)|((L&224)>>3)<br>
pixel_0 = (L&31)<<3<br>
data.append((pixel_0, pixel_1, pixel_2))<br>
img.putdata(data)<br>
return img<br>
<br>
vittorio<br>
<br>
</body>
</html>