Pregunta: | 1333 - PCX EN FORMATO DE 16 COLORES |
Autor: | carlos iturralde |
programo en c++ bajo dos y tengo varios archivos que explican el formato pcx (tanto en c como en pascal), pero todos ellos hacen referencia a 256 y más colores y ninguno a los 16 colores, traté entonces de visualizar un pcx con este número de colores y el resultado fue que se ve la imagen como en tercera dimensión PERO SIN LOS LENTES CORRESPONDIENTES, es decir, borrosa, asi que ahí lo tienen, muchas gracias de antemano (imagino que tendra que ver con lo de las páginas de video). |
Respuesta: | Jose Luis De la Cruz |
Hola amigo hace tiempo tuve un problema parecido al tuyo y lo solucione leyendo el valor de bits per pixel en la cabecera del pcx Desplazamiento (bytes) / constantes de cabecera 0 Manufacturer Version (2 bytes) 2 Encoding (1 byte) 3 Bits Per Pixel (1 byte) 4 XMin, Ymin, XMax, YMax (2 bytes c/u) 12 Horizontal Resolution (2 bytes) 14 Verticle Resolution (2 bytes) 16 Color pallette setting (48 bytes) 64 Reserved 65 Number of color planes 66 Bytes per line (2 bytes) 68 1 = Color 2 = Grayscale (2 bytes) 70 Blank (58 bytes) bits per pixel es un char que contiene 8 si el pcx es de 256 colores y 4 si es de 16 colores, para leerlo puedes hacerlo como sigue: File *fp; char bpp;// bytes por pixel fseek (fp,3L,SEEK_SET); //se desplaza 3 bytes desde el inicio del pcx fread(&bpp,1,1,fp); // se lee 1 byte si todavia no se arregla con lo anterior entonces el error se puede deber al contenido de la constante bytes per line, esto es porque existen algunos programas ( como el MS photo editor ) cambian el ancho real del pcx a su multiplo de 4 mayor mas cercano, y este valor justo se encuentra almacenado en bytes per line.... si deseas ver un ejemplo en c++ visita mi pagina web http://www.geocities.com/joseluisdl/jldl.htm suerte...y si necesitas mas ayuda escribeme... |