Simulando a cámara da Game Boy
A cámara da Game Boy, que saiu á venda no 1998, produce imaxes con tan só 4 cores diferentes bastante curiosas. A pesar de que teño unha destas cámaras, extraer as imaxes desta é bastante complicado (require hardware extra) así que me pareceu interesante facer un filtro que a imitase. Despois de buscar, atopei un repositorio bastante prometedor en github. A partir deste construín o meu fork para adaptar o código orixinal ás miñas intencións.
Implementación
A idea orixinal era simplemente mellorar a usabilidade mediante unha interface de liña de comandos, pero ao final acabou derivando nalgo máis complexo. O código orixinal no que me baseei creaba unhas imaxes en branco e negro bastante fieis ás da gameboy polo que simplemente engadín a interface de liña de comandos. Despois pensei que estaría ben que soportase unha gama de cores “verdosos” similares aos da pantalla da propia consola, e aí empezou a estenderse o proxecto. Unha vez escollida unha paleta de verdes, xa postos a engadir funcionalidade creei a posibilidade de usar varias paletas de cor predefinidas. Non contento con iso, ideei unha forma para que os usuarios puideran introducir as cores que eles queiran e crear así a súa propia gama de cores.
Uso
Xa que o script está programado en Python 3 a primeira dependencia é o uso de python 3.x. Ademais deste requírese Opencv (usado para ler e tratar imaxes), Numpy (operacións de matrices) e Matplotlib (gardar as imaxes). Estas dependencias probablemente se puideran reducir, xa que opencv é algo overkill.
Para invocar o programa poderemos usar o seguinte comando:
O factor de escalado (-s) controla o tamaño da imaxe de saída en función a de entrada, é dicir, 0.5 sería a metade de tamaño, 0.25 un cuarto e así.
O parámetro “p” controla a paleta a usar, os diferentes valores das paletas son:
Paleta 1 is NOSTALGIA PALETTE de WildLeoKnight
Paleta 2 is SPACEHAZE PALETTE de WildLeoKnight
Paleta 3 is ICE CREAM GB PALETTE de Kerrie Lake
Paleta 4 is WISH GB PALETTE de Kerrie Lake
Paleta 5 is AYY4 PALETTE de Polyducks
Nos links de arriba podedes ver os traballos dos autores destas paletas e inspirarvos para crear as vosas propias!
No caso de querer usar unha paleta non incluída o comando a usar será:
Neste caso os valores representados por hex son os códigos de cada cor en hexadecimal sen #. A orde é importante xa que debería empezarse coa cor máis clara ao principio cara a máis escura para obter os mellores resultados.
A ferramenta
Se queredes probar sorte con este script podedes atopala neste link.