Esta es una variación quine .
Introducción
Todos escribimos código corto, porque algunas razones oscuras , pero hagas lo que hagamos, ocuparán al menos 144 píxeles / byte (con una fuente de 12px). Pero, ¿qué pasaría si codificamos nuestro código en imágenes? Esta es tu tarea hoy.
Desafío
Su tarea es leer su propio código fuente (se permiten las citas incorrectas, por ejemplo, leer literalmente el archivo fuente) y crear una imagen a partir de él, configurando los componentes rojo, verde y azul de un píxel basado en el ASCII valor del personaje.
Ejemplo:
Tenemos la cadena "¡Hola mundo!"
Hello world!
Vamos a convertir esto a valores ASCII:
72 101 108 108 111 32 119 111 114 108 100 33
Asigne los valores RGB (si la longitud del código fuente no es divisible por 3, use 0 como caracteres restantes):
__________________________________________________
| R | G | B || R | G | B || R | G | B || R | G | B |
----------------------------------------------------
|72 |101|108||108|111|32 ||119|111|114||108|100|33 |
----------------------------------------------------
Luego creamos la imagen con el área más pequeña fuera de ella. Tenemos 4 conjuntos de valores RGB, por lo que la imagen más pequeña será una imagen 2 * 2, que va desde el píxel superior izquierdo a la derecha:
Y obtenemos esta imagen terriblemente coloreada (redimensionada, por lo que es al menos visible, también demuestra el hecho de cuán pequeña puede ser)
Reglas / Información adicional
- No hay entrada
- El resultado debe ser como un archivo separado o en una ventana separada.
- Para caracteres multibyte, divida el carácter en 2 bytes.
- El código fuente debe tener al menos 1 byte de longitud
- La imagen debe ser de los tamaños posibles, que tiene la relación ancho / altura más cercana a 1
- El recuento de píxeles en la imagen debe ser exactamente ceil (byte count / 3), no se deben agregar píxeles adicionales
Puntuación
Este es un código de golf , por lo que gana la respuesta más pequeña en bytes.
height = N
y width = 1
? Creo que te refieres al ancho / alto más cercano a 1.