mirror of
https://github.com/irmen/prog8.git
synced 2024-11-26 11:49:22 +00:00
more accurate palette conversion
This commit is contained in:
parent
5698de6cf4
commit
f70fa42eac
@ -1,7 +1,6 @@
|
|||||||
TODO
|
TODO
|
||||||
====
|
====
|
||||||
|
|
||||||
- integrate MCIOUT into diskio.f_write()
|
|
||||||
- revisit the seek example to see if write-seeking now works?
|
- revisit the seek example to see if write-seeking now works?
|
||||||
- remove unused interned strings in the resulting code (for example from removed if/else blocks)
|
- remove unused interned strings in the resulting code (for example from removed if/else blocks)
|
||||||
- [on branch: shortcircuit] investigate McCarthy evaluation again? this may also reduce code size perhaps for things like if a>4 or a<2 ....
|
- [on branch: shortcircuit] investigate McCarthy evaluation again? this may also reduce code size perhaps for things like if a>4 or a<2 ....
|
||||||
|
@ -2,10 +2,15 @@
|
|||||||
|
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
|
|
||||||
def make_cx16_palette(palette: list[int]) -> bytes:
|
def make_cx16_palette(palette: list[int]) -> bytes:
|
||||||
|
def to4bit(color: int) -> int:
|
||||||
|
return (color * 15 + 135) >> 8 # see https://threadlocalmutex.com/?p=48
|
||||||
cx16palette = bytearray()
|
cx16palette = bytearray()
|
||||||
for pi in range(0, len(palette), 3):
|
for pi in range(0, len(palette), 3):
|
||||||
r, g, b = palette[pi] >> 4, palette[pi + 1] >> 4, palette[pi + 2] >> 4
|
r = to4bit(palette[pi])
|
||||||
|
g = to4bit(palette[pi+1])
|
||||||
|
b = to4bit(palette[pi+2])
|
||||||
cx16palette.append(g << 4 | b)
|
cx16palette.append(g << 4 | b)
|
||||||
cx16palette.append(r)
|
cx16palette.append(r)
|
||||||
return cx16palette
|
return cx16palette
|
||||||
|
Loading…
Reference in New Issue
Block a user