• Jueves 28 de Marzo de 2024, 12:07

Autor Tema:  Problemas Con Timage  (Leído 2080 veces)

edgarmfco

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Problemas Con Timage
« en: Domingo 6 de Noviembre de 2005, 05:23 »
0
:kicking:  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";
   }
}
//---------------------------------------------------------------------------

SkaJaf

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Problemas Con Timage
« Respuesta #1 en: Viernes 24 de Marzo de 2006, 11:48 »
0
Antes de:
Image1->Width=anchura;
Image1->Height=altura;

Haz:
TImage1 *Image1=new TImage(this);
Image1->Parent=this;
Image1->Width=anchura;
Image1->Heigth=altura;


Si sigue sin funcionarte, hay una libreria IPL98 de tratamiento de imagen que funciona muy bien y es gratuita.
Un saludo