Leer paleta de un BMP

Soporte técnico sobre los lanzamientos de MojonTwins y comentarios sobre los güegos. Ofrecemos soporte técnico con Fourspriter, te ayudamos con ZX Basic o Z88DK, te damos pistas some cómo saltarse un bicho y cosas así.

Moderador: na_th_an

Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Leer paleta de un BMP

Mensajepor na_th_an » Lun, 26 Ene 2015, 08:31

Es que nicepal sólo genera esa paleta, no hace nada más. Mira bien mi post. Cada utilidad hace una cosa.

gennice.exe sólo saca un PNG con esa paleta fija (nicepal.png), que la necesitaba para hacer mis pruebas. Carece de utilidad.
genpal.exe coge una cadena hexadecimal con los colores que has elegido de la ULA+ y te genera un PNG con esos colores, tal y como los calcula el conversor. Esto es única y exclusivamente para que puedas usar esos colores para dibujar los gráficos y que luego no haya problemas de conversión.
radspr.exe es el conversor que te convertirá tus sprites al formato que sea usando la paleta en hex que le especifiques.

Lo mejor para usar esto es

1.- Hacer la paleta ULA+ y obtener los valores en hexadecimal. Pegarlos todos en un chorizo de 32 caracteres. Vaya, sería como coger los valores que me pusiste tú para el ejemplo y pasarlos a hex.
2.- Usar genpal.exe para obtener un png con los colores de esa paleta en hex.
3.- Usar ese png para coger los colores y dibujar tus gráficos en un set. Grabar como png de altura/anchura múltiplos de 8.
4.- Usar radspr.exe para obtener los sprites de tu png, especificando la paleta en hex.

Sobre los colores, ya te digo que lo que hago es multiplicar, simplemente. Por lo que nunca se llega al máximo, por las razones explicadas. No sé qué algoritmo se aplicará realmente para llevar al máximo el valor máximo tras la multiplicación. Si hay otra forma, decidmela y se la podemos poner al conversor.

Como ya te dije, si tú me dices que tienes 3 bits para "R", eso significa que los valores pueden ser 0-7. Para convertir yo eso a RGB y poder usarlo en los png y eso, tengo que multiplicar para obtener un valor de 8 bits, o sea, tengo que multiplicar por 32. El problema de esto es que el mayor valor posible es 11100000, y por tanto la intensidad más clara no queda "la más clara". Supongo que el hard usa otra forma para escalar, o no, o hay una corrección, o ni idea. No lo sé.
Como diría Rorshach: "Urm..."
Avatar de Usuario
Metalbrain
Mensajes: 9
Registrado: Mié, 21 May 2014, 21:19

Re: Leer paleta de un BMP

Mensajepor Metalbrain » Lun, 26 Ene 2015, 10:29

$this->bbcode_second_pass_quote('na_th_an', 'C')omo ya te dije, si tú me dices que tienes 3 bits para "R", eso significa que los valores pueden ser 0-7. Para convertir yo eso a RGB y poder usarlo en los png y eso, tengo que multiplicar para obtener un valor de 8 bits, o sea, tengo que multiplicar por 32.


¿Y por que no por 36?
255/7 = 36.42