Sua tarefa é obter uma imagem sRGB de 24 BPP e gerar a mesma imagem ampliada em 3x em subpixels vermelho, verde e azul. A imagem resultante será composta inteiramente de pixels pretos, vermelhos, verdes e azuis.
Cada pixel da imagem de origem, quando ampliado, produz um arranjo de 9 subpixels que podem ser ativados ou desativados (ou seja, suas respectivas cores ou preto). O arranjo específico usa três colunas de vermelho, verde e azul, nessa ordem, da seguinte maneira:
(Observe que as bordas desses "pixels" são apenas para demonstração.)
Como cada um dos nove subpixels só pode ser ativado ou desativado, você precisará quantizar a imagem de entrada e usar diferentes padrões de subpixel para alcançar 3 níveis de brilho.
Para cada subpixel na imagem:
- Para os níveis de cor de 0 a 74, todos os subpixels devem ser pretos.
- Para os níveis de cor 75-134, o subpixel do meio deve ser a cor respectiva e os outros dois devem ser pretos.
- Para os níveis de cor 135-179, o subpixel do meio deve ser preto e os outros dois devem ter a respectiva cor
- Para os níveis de cor 180-255, todos os três subpixels devem ter suas respectivas cores
Eu escolhi esses intervalos de nível porque foi isso que aconteceu com uma boa aparência
Aplique essa transformação a todos os pixels da imagem e produza a imagem com sub-pixel.
Exemplos de pixel único
rgb (40, 130, 175) produzirá este padrão:
rgb (160, 240, 100) produzirá este padrão:
Exemplos de imagem completa
Imagens originárias da Wikipedia
Regras e notas
- A entrada e a saída podem estar em qualquer formato conveniente, sejam arquivos de imagem reais ou (possivelmente aninhadas) listas de valores RGB.
- Você pode assumir que os pixels estão no espaço de cores sRGB com 24BPP.
Feliz golfe!