Recientemente mencioné la canción I'm Textpert sobre mensajes de texto mientras conduzco y una línea en particular de la canción inspiró este desafío.
Nunca me inclino tanto como para enviar mensajes de texto a las fotos / En cambio, escribo el combo correcto de unos y ceros
Obviamente, esto sería algo casi imposible de hacer en la cabeza, por lo que debería ayudar a los expertos en texto en todo el mundo codificando un programa para hacer lo mismo.
Su trabajo es tomar el nombre de un archivo de imagen con los 500x500
píxeles de dimensiones y generar el archivo como binario. También puede tomar una imagen como entrada, si su idioma lo admite.
Puede usar archivos de imagen con las extensiones
.jpg
.png
.gif
.bmp
.svg
Permítanme demostrar cómo convertir una imagen en binario, para aquellos que no entienden lo que quiero decir.
Paso 1
Tome el primer píxel del archivo y recupere su valor RGB como 3 números decimales: R, G y B. Supongamos, por ejemplo, que el primer píxel es 255,0,0
(rojo).
Paso 2
Convierta cada número en su representación binaria de 8 bits y concatene en un solo número de 24 bits. Por ejemplo, esto produce111111110000000000000000
Paso 3
Agregue este número de 24 bits a la salida final. Por lo tanto, la salida final debe ser 6000000
dígitos de longitud y debe consistir en su totalidad 1
y0
Este es un código de golf, ¡el código más corto gana!
fuente
Respuestas:
Pyth ,
1413 bytes-1 byte gracias a Erik the Outgolfer (
z
se puede eliminar para entrada implícita).Explicaciones
Desafortunadamente, por razones de seguridad, eso no se puede probar con el intérprete en línea ; Tendrá que clonar Pyth para probarlo en su propia computadora.
fuente
z
.MATL ,
1312 bytesAcepta un nombre de archivo como una cadena como entrada. Los números de salida de 24 bits se muestran en orden de fila mayor.
Lamentablemente, esto no funciona en los intérpretes en línea por razones de seguridad. Aquí hay una captura de pantalla que funciona en mi máquina local
Aquí hay una versión ligeramente modificada en la que creo manualmente una imagen de 2 x 2 x 3 y luego uso (casi) el mismo código para procesarla.
Explicación
fuente
Mathematica, 103 bytes
toma una imagen x.bmp (o cualquier otra) y la convierte en archivo x.txt
fuente
PadLeft
, podría usar el tercer argumento deIntegerDigits
(es decirIntegerDigits[#,2,8]&
Import
'Exportar'.C #, 309 bytes
Mi segundo código de golf, si no puedes decirlo. Toma una imagen x.jpg ...
fuente
Octava, 46 bytes
Crea una función anónima llamada
ans
que se puede llamar con un nombre de archivo (ans('file.png')
) o una URL (ans('http://image.png')
)fuente