Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Cargar y visualizar imagenes sin cabecera(RAW)

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Cargar y visualizar imagenes sin cabecera(RAW) Responder citando

Hola.Necesito cargar imagenes de tipo RAW y visualizarlas. Basicamente es leer todos los bytes del fichero que son los datos del bitmap de la imagen. Una forma muy sencilla es cargar el fichero de marras en memoria y luego leer byte a byte e ir asignando el valor a la propiedad Pixel[i][j] de un Canvas.Pero resulta muy lento.Hay alguna forma mas eficiente de hacerlo? He intentado varios caminos pero no he conseguido nada. Agradeceria cualquier tipo de sugerencia y / o comentario. Gracias! Alvaro
Mi correo: rittis@wanadoo.es
Volver arriba
Mensaje    Asunto: Cargar y visualizar imagenes sin cabecera(RAW) Responder citando

El siguiente codigo coge datos de un fichero
RAW con las tres componentes del color y lo pone en un bitmap. Para un fichero en blanco y negro se debe cambiar la linea de fread para leer un byte por pixel en lugar de tres.
El bitmap está en la variable Bitmap

Saludos
Joan

-----------------------------------

unsigned char *linia;

for (i=0;i<lfiles;i++)
{
inici_fila=3*((gsel_fil_ini+i)*gcolumnes+gsel_col_ini)+519;

fseek(f_in,inici_fila,SEEK_SET);

fread((void *)punts,3,lcolumnes,f_in);

linia=(unsigned char *)Bitmap->ScanLine[i];
for (j=0;j<lcolumnes;j++)
{
linia[3*j]=punts[3*j+1];
linia[3*j+1]=punts[3*j];
linia[3*j+2]=punts[3*j+2];
}
}
fclose(f_in);

Volver arriba
Mensaje    Asunto: Cargar y visualizar imagenes sin cabecera(RAW) Responder citando

Creo que te seria mas facil, y rápido si te lees el tipo de dato abstacto TBitmap. En este cargas el fichero RAW, y luego para verlo pones Image1->Add(nombre del TBitmap);
ejemplo
TBitmap *mapabits;
mapabits->LoadFromFile("raw");
Image1->Add(mapabits);
delete mapabits;

Aunque no lo he usado, si no es loadfromfile es otra parecida.busca en la ayuda

Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.