PDA

Ver la Versión Completa : pasar de un array de valores a bitmap


i.larranaga
15-04-2004, 18:36:06
Hola,
estoy intentando pasar de un array de valores de nºpixels*3, del rango de 0-255 y necesito pintarlo en pantalla y conseguir un objeto bitmap.
Estoy intentándolo con CreateBitmap pero no consigo que se visualice la imagen.
¿Alguien sabe como se puede hacer?
Un saludo y gracias.

razor7
19-04-2007, 01:18:56
Hola, yo necesito lo mismo. Tengo una matriz de una imagen y necesito armar un TBitmap o un Canvas o lo que sea, la cosa es que quiero ver el resultado de un procedimiento que guarda la imagen en una matriz y verlo por el formulario de mi aplicacion...

Se puede hacer eso?

Gracias Mil...

Robert01
20-04-2007, 04:45:54
No entiendo bien que quieren

¿La matríz de n° pixeles por tres es una matriz de valores uno y cero?


Saludos

razor7
20-04-2007, 06:01:04
Hola Robert...muchas gracias por tu interes...!!!

Mira, el tema es asi...por ejemplo te escribo este codigo

void __fastcall Form1::test12()
{
printf("\n------------------------------\n");
printf("test12 begin :\n");
printf("->test image : create a sample image\n\n");
PFBitmap32 imageCreated = image_createImage( 256, 256 );
if( imageCreated != NULL ){
TFColor32 *src = imageCreated->Bits;
for(int row=0; row<imageCreated->Height; row++){
for(int col=0; col<imageCreated->Width; col++){
PFColor32 color = src;
*color = image_gray32( row );
src++;
}
}
// save image created
helper_saveImage( imageCreated, "testFiltersDllC_output_test12.jpg" );
// dispose
image_freeImage( imageCreated );
}
printf("test12 end.\n\n");
}



Si te fijas:
Hay una imagen "imageCreated" que es del tipo "PFBitmap32"
Accedo a sus pixels a travez de un puntero "*src" del tipo "TFColor32"
En la iteracion para recorrer la matriz de bits de la imagen, podras ver que a cada pixel se le asigna un color gris creciente a travez de "*color = image_gray32( row );"
Luego de esto, en la variable imageCreated tengo los pixels modificados que se guardan a un archivo con la sentencia "helper_saveImage( imageCreated, "testFiltersDllC_output_test12.jpg" );"La pregunta concreta es: ¿Como puedo hacer para que luego de creada esa imagen, pueda asignar cada pixel de la "imageCreated" a cada pixel de un TBitmap o a un TImage o a cualquier tipo de imagen en C++ Builder?

por ejemplo, si hago esto canvas->Bitmap = imageCreated me da error...

Gracias por las sugerencias...!!!