Você simplesmente pegaria essa imagem e acrescentaria uma cor a cada dígito hexadecimal. Por exemplo, #49de5f
se tornaria #5aef60
(com o 9
loop para um a
e o f
loop para um 0
.)
Isso também significa que todo branco ( #ffffff
) se tornará preto ( #000000
) porque todos os f
loops retornam a 0
, mas todo preto se tornará um tom mais claro de preto ( #111111
).
A pontuação é baseada no menor número de bytes usados, pois esta é uma questão de código-golfe .
Use a imagem abaixo como imagem de entrada para o seu código e coloque a imagem de saída do seu código na sua resposta.
Se você quiser, também pode usar esta outra imagem do arco-íris:
ef
bytes (que deve se tornarf0
o contrário do00
que acontece quando você adiciona 17 e usa o mod 256).Respostas:
Pyke,
1713 bytesExperimente aqui!
Recebe a entrada como uma matriz inteira 3d de pixels e gera o mesmo formato
fonte
Mathematica, 78 bytes
Pega e retorna um objeto de imagem (para criar um objeto de imagem, basta colar a imagem no Mathematica).
Resultado para o caso de teste:
Tomando a entrada e retornando a saída como uma matriz 3D de valores de canal inteiro, isso reduz para 51 bytes :
Mas essas meta postagens ainda não têm uma quantidade impressionante de suporte, então vou usar a versão de 78 bytes por enquanto.
fonte
Verilog, 220 bytes:
Atualmente, não está claro como as dimensões devem ser fornecidas e se a matriz deve ser transmitida ou fornecida ao mesmo tempo. Vou transmiti-lo 8 bits por vez usando um sinal de relógio (com um sinalizador de dados válidos que fica baixo após o processamento de toda a imagem) e inserir / enviar as dimensões como números inteiros de 32 bits:
fonte
Python, 226 bytes
Agora é válido!
Use a biblioteca de travesseiros.
Saída:
Obrigado a @TuukkaX por salvar 9 bytes!
Obrigado a @ mbomb007 por salvar 18 bytes!
fonte
0xFF
vez de255
?0xFF
: Dfrom PIL import*
. Eu também acho que issoImage.open
pode ser alterado para logoopen
depois disso.from PIL import*
, mas não consigo alterar o #Image.open
Dyalog APL ,
2115 bytesPresumo que a saída possa estar no mesmo formato.
Nova solução leva matriz de valores [[ r , g , b , r , g , b ], [ r , g , b ,…
Explicação
⎕
obter entrada numérica16 16⊤
converter para a base de 2 dígitos 161+
adicionar 1, ie 0 → 1, 1 → 2, 15 → 1616|
módulo 16, ie 16 → 016⊥
converter da base 16Exemplo
A solução antiga de 21 bytes utiliza matriz de [["RRGGBB", "RRGGBB"], ["RRGGBB",…
Necessidades
⎕IO←0
, que é padrão em muitos sistemas.Explicação
{
…}¨
Para cada sequência de caracteres de 6 caracteres RGB, represente-a como⍵
e faça:n←⎕D,⎕A
atribua "0… 9A… Z" para n⍵⍳⍨
encontrar índices dos caracteres individuais em n e1+
adicionar um ao índice, ou seja, 0 → 1, 1 → 2, 15 → 1616|
módulo 16, ou seja, 16 → 0n[
…]
use isso para indexar em nExemplo
fonte
C -
1141137066617267 bytesAqui está o código (com suporte para o caso de teste de Martin Ender (sem o 60b)):
E aqui está a versão menos ofuscada:
Compile e execute com
gcc -o color colorgolf.c && cat a.bmp | ./color > b.bmp
Este código suporta trabalhos com bitmaps . Para converter
png
arquivosbmp
, usei o seguinte comando:convert -flatten -alpha off png.png a.bmp
O código pressupõe que esse
bmp
cabeçalho tenha 54 bytes de comprimento - nesse caso, ele funciona, mas não tenho certeza se não estou quebrando algo discretamente.Além disso, este é o arco-íris:
fonte
Java 142 bytes
Golfe:
fonte
i
dois como parâmetro e no loop for, então eu alteraria o parâmetro para outra coisa parecidaa
. Além disso, você pode jogar um pouco mais removendo oint
na frente doj
e adicioná-lo aoint i
. Assim como este:BufferedImage t(BufferedImage a){for(int i=-1,j;++i<a.getWidth();)for(j=-1;++j<a.getHeight();)a.setRGB(i,j,a.getRGB(i,j)+1118481);return a;}
. Além disso, dê uma olhada neste post: Dicas para jogar golfe em Java . :)R, 302 bytes
Longe de ser perfeito, mas aqui vai:
Explicação:
fonte