Hola tengo el siguiente problema
Estoy haciendo un programa de tratamiento de imagenes el cual necesita abrir un archivo PGM ahora la matriz que contiene la imagen la vacie en en TImage
for(int i=0;i<filas;i++)
for(int j=0;j<columnas;j++)
{
color=matrix
[j]<<16|matrix[j]<<8|matrix[j];
Image1->Canvas->Pixels[j]=(TColor)color;
}
el problema surge cuando abro otro archivo pues si la 1er imagen era de 100 x 100 y ahora abro una mas grande solo me dibuja la parte de 100 x 100 pero si hago lo contrario primero abro una imagen de 500 x 500 y despues abro una nueva pero que sea de menos dimension si lo hace correctamente
Porfas ayudenme que ya estoy desesperado
El codigo que utilizo es el siguiente
void __fastcall TMainForm::AbrirPGMClick(TObject *Sender)
{
OpenDialog->FileName="";
Label10->Caption="Ancho= ";
Label11->Caption="Alto= ";
if(OpenDialog->Execute())
{
NameIn=OpenDialog->FileName;
StatusBar1->SimpleText=NameIn;
if((IMG = read_pnm(OpenDialog->FileName.c_str())) == NULL)
{
ShowMessage("ERROR: Leectura!!!");
exit(1);
}
matrix=(byte **)IMG->ptr;
filas=IMG->rows;
columnas=IMG->cols;
Image1->Width=columnas;
Image1->Height=filas;
for(int i=0;i<filas;i++)
for(int j=0;j<columnas;j++)
{
color=matrix[j]<<16|matrix[j]<<8|matrix[j];
Image1->Canvas->Pixels[j]=(TColor)color;
PaintBox1->Canvas->Pixels[j]=(TColor)color;
}
Label10->Caption=Label10->Caption+" "+columnas+" pxls";
Label11->Caption=Label11->Caption+" "+filas+" pxls";
}
}
//---------------------------------------------------------------------------