ClashState es programa que permite convertir imagenes JPEG, GIF o PNG a formatos nativos de computadoras de 8-bits.

El programa ésta escrito en Python y usa DearPyGUI como interfaz gráfica.
El algoritmo de conversión es una evolución del modulo que desarrollé para RetroBBS y utiliza HitherDither de Henrik Blidh con algunas modificaciones, Pillow y Kmeans por medio de OpenCV.
Caracteristicas
Soporte para los siguientes modos gráficos:
- Commodore 64 HiRes: 320×200 pixeles 16 colores – 2 colores por atributo de 8×8 pixeles.
- Commodore 64 Multicolor:160×200 pixeles 16 colores – 4 colores por atributo de 4×8 pixeles, 1 de ellos fijo para toda la imagen.
- Commodore 64 AFLI: 296×200 pixeles 16 colores – 2 colores por atributo de 8×1 pixeles.
- Commodore 64 Unrestricted: Modo de fantasia, 320×200 pixeles 16 colores, sin restricciones.
- MSX 1 Screen 2: 256×192 pixeles 15 colores – 2 colores por atributo de 8×1 pixeles.
- MSX 1 Unrestricted: Modo de fantasia, 256×192 pixeles 15 colores, sin restricciones.
- ZX Spectrum: 256×192 pixeles 15 colores – 2 colores por atributo de 8×8 pixeles.
- ZX Spectrum Unrestricted: Modo de fantasia, 256×192 pixeles 15 colores, sin retricciones.
Escalado y posicionamiento libre de la imagen a convertir. Clickeando y arrastrando sobre la imagen original se puede mover para posicionarla a gusto. Usar la rueda del mouse sobre la imagen original permite acercar o alejar la imagen.









Ajustes en tiempo real de:
- Contraste
- Brillo
- Tono
- Saturación
- Definición
Dithering, cuantización de colores:
- Cuantización en 2 pasos: luminancia y final. El paso opcional de luminancia trabaja solo sobre el canal de luminancia de la imagen y se puede seleccionar si aplicarlo sobre la paleta de colores seleccionada o como blanco y negro.
- Diez opciones de dithering/cuantización:
- None: Simple color más próximo, o sín efecto si se lo selecciona para el paso de luminancia
- Bayer 2×2
- Bayer 4×4
- Bayer 4×4 (Odd)
- Bayer 4×4 (Even)
- Bayer 4×4 (Spotty)
- Bayer 8×8
- Yliluoma
- Cluster dot
- Floyd Steinberg
- Excepto Yliluoma y Floyd Steinberg, el umbral de cuantización puede ser ajustado entre 1 (más oscuro) a 5 (más claro).
- Seleccion entre comparación de colores por distancia Euclideana o el algoritmo CCIR 601 (en el menu Options). Ylilouma y Floyd Steinberg usan sus propios metodos de comparación.











Paletas de colores:
- Paletas de cuantización y presentación seleccionables independientemente
- Cada color de la paleta puede ser activado o desactivado individualmente, para personalizar el resultado de la conversión.
- En caso de dejar solo 2 colores activos se puede elegir entre convertir usando los valores de color reales o simular convertir a blanco y negro.




