SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: avis_phoenix en Martes 7 de Septiembre de 2004, 02:55

Título: Manejar Bmp
Publicado por: avis_phoenix en Martes 7 de Septiembre de 2004, 02:55
HOLA!!

Necesito poder leer una imagen bmp de 256 colores e irla leyendo por sus coordenadas sacando el valor decada pixel, pero necesito que sea un valor tipo byte por cada pixel, esdecir no usar canvas->pixel(x,y) pues regresa un dato tipo TColor y es de 24 bits yo necesito uno de 8 bits alguien sabe como hacerlo?
Título: Re: Manejar Bmp
Publicado por: Hodoacro en Martes 7 de Septiembre de 2004, 11:37
Las variables de tipo TColor tienen el formato:

Variable TColor = PAVR

Paleta = P
Intensidad de Azul = A
Intensidad de Verde=V
Intensidad de Rojo =R

Como verás cada color primario ocupa 1 Byte por lo que veo un poco dificil poder simplificar 3 Bytes de informacion de información en 1. Sé que existe algoritmos de simplificación de paletas de 24 Bit a paletas de 8 Bit (que es lo que quieres) pero todos pasan por perder gran cantidad de información de color.

En el API existen funciones como GetPixel (...) que puede sustituir a Canvas->Pixels(x,y) y son más rápidas. Esta función te devuelve un dato de tipo COLORREEF, pero vas a tener el mismo problema ya que este tipo de datos es del mismo formato que TColor.
 <_<
Título: Re: Manejar Bmp
Publicado por: avis_phoenix en Miércoles 8 de Septiembre de 2004, 05:50
buenopeor te sabes algún algoritmo para ahcer eso?
Título: Re: Manejar Bmp
Publicado por: Hodoacro en Miércoles 8 de Septiembre de 2004, 10:01
De momento sólo sé que existen, pero no los conozco, de todas formas veré si puedo encontrar información de alguno.

Una pregunta, ¿porque quieres simplificar el color?.
Título: Re: Manejar Bmp
Publicado por: avis_phoenix en Jueves 9 de Septiembre de 2004, 04:06
Bueno es que tengo un proyecto personal de ms-dos y para facilitar la ampliaciópn de este proyecto quiero que se pueda usar paint para hacer imageners uqe voy a usar,pero por el tipo de uso que le doy necesito tener un formato del archivo muy espeficiamente hecho para mi programa, y sucede que elrpograma usa 256 colores para que pueda usarse en cualquier máquina aunque sea viejita, poreso necesito que sean en 256 colores