5
« en: Domingo 4 de Febrero de 2007, 01:58 »
Hola a todos. Estoy haciendo un programa que permita aplicar algoritmos de criptografía a imágenes. Pero tengo un pequeño problema.
Resulta que leeo una imagen de un fichero *.bmp y pretendo almacenarla en memoria para luego procesarla mediante dichos algoritomos.
Antes de aplicar los algoritmos, la leo, la dibujo, la almaceno en memoria y la vuelvo a pintar en otro TImage, pero me aparece en B/N. El código que empleo es el siguiente:
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->unsigned char *textura;
TColor tcolor;
unsigned char *color = (unsigned char *) &tcolor;
textura = (unsigned char *) malloc (altoImagen*anchoImagen*3);
int n = 0;
for (int i = 0; i < altoImagen; i++) { //escaneo las líneas
for (int j = 0; j < anchoImagen; j++) {
tcolor = imagenClaro->Picture->Bitmap->Canvas->Pixels[j][i];
textura[n] = GetRValue(tcolor);
textura[n + 1] = GetGValue(tcolor);
textura[n + 2] = GetBValue(tcolor);
tcolor = (TColor)RGB(textura[n], textura[n+1], textura[n+2]);
n++;
imagenCopia->Canvas->Pixels[j][i] = tcolor;
//la imágen se pinta bien
}
}
n = 0;
for (int i = 0; i < altoImagen; i++) {
for (int j = 0; j < anchoImagen; j++){
tcolor= (TColor)RGB(textura[n], textura[n+1], textura[n+2]);
imagenPrueba ->Canvas->Pixels[j][i] = tcolor;
n++;
//aquí la imagen se pinta el B/N
}
}
delete textura;<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
Creo que el problema está en la composición del color, pero no lo se.
¿me echa alguien una mano? Gracias