Recentemente, listei a música que sou especialista em mensagens de texto enquanto dirigia e uma linha específica da música inspirou esse desafio.
Nunca desço tão baixo a ponto de enviar fotos de texto / Em vez disso, escrevo a combinação correta de zeros e zeros
Agora, obviamente, isso seria algo quase impossível de se fazer na cabeça e, portanto, você deve ajudar os especialistas em texto em todo o mundo codificando um programa para fazer a mesma coisa.
Seu trabalho é pegar o nome de um arquivo de imagem com as dimensões de 500x500
pixels e gerar o arquivo como binário. Você também pode capturar uma imagem como entrada, se o idioma suportar.
Você pode usar arquivos de imagem com as extensões
.jpg
.png
.gif
.bmp
.svg
Permita-me demonstrar como converter uma imagem em binária, para quem não entende o que quero dizer.
Passo 1
Pegue o primeiro pixel no arquivo e recupere seu valor RGB como 3 números decimais: R, G e B. Vamos supor, por exemplo, que o primeiro pixel seja 255,0,0
(vermelho).
Passo 2
Converta cada número em sua representação binária de 8 bits e concatene em um único número de 24 bits. Por exemplo, isso gera111111110000000000000000
etapa 3
Adicione esse número de 24 bits à saída final. Portanto, a saída final deve ter 6000000
dígitos longos e deve consistir inteiramente de1
e0
Este é um código de golfe, então o código mais curto vence!
fonte
Respostas:
Pitão ,
1413 bytes-1 byte graças a Erik the Outgolfer (
z
pode ser removido para entrada implícita).Explicações
Infelizmente, por motivos de segurança, isso não pode ser testado com o intérprete on - line ; você precisará clonar Pyth para testá-lo em seu próprio computador.
fonte
z
.MATL ,
1312 bytesAceita um nome de arquivo como uma string como entrada. Os números de 24 bits de saída são exibidos na ordem principal das linhas.
Infelizmente, isso não funciona nos intérpretes online por razões de segurança. Aqui está uma captura de tela dele trabalhando na minha máquina local
Aqui está uma versão ligeiramente modificada na qual eu crio manualmente uma imagem 2 x 2 x 3 e depois uso (quase) o mesmo código para processá-la.
Explicação
fonte
Mathematica, 103 bytes
pega uma imagem x.bmp (ou qualquer outra) e a converte em arquivo x.txt
fonte
PadLeft
, você poderia usar o terceiro argumento deIntegerDigits
(ieIntegerDigits[#,2,8]&
Import
`Exportar '.C #, 309 bytes
Meu segundo código de golfe, se você não sabe. Tira uma imagem x.jpg ...
fonte
Oitava, 46 bytes
Cria uma função anônima chamada
ans
que pode ser chamada com um nome de arquivo (ans('file.png')
) ou uma URL (ans('http://image.png')
)fonte