Cita:
Empezado por Jusar
Realmente no se como implementarlas al codigo que llevo hecho...
|
Hola Jusar.
Supongo que para mostrar las imágenes usarás el componente
TImage. Entonces hagamos las funciones más genéricas, usando como parámetros los
TImage...
Si las imágenes son Bitmap, para compararlas usá esta función:
Código:
bool SameBMPImages(TImage *Img1, TImage *Img2)
{
if(Img1->Picture->Bitmap->Height != Img2->Picture->Bitmap->Height ||
Img1->Picture->Bitmap->Width != Img2->Picture->Bitmap->Width ||
Img1->Picture->Bitmap->PixelFormat != Img2->Picture->Bitmap->PixelFormat)
return false;
for(int i =0; i <Img1->Picture->Bitmap->Height ; i++ )
if(memcmp(Img1->Picture->Bitmap->ScanLine[i],
Img2->Picture->Bitmap->ScanLine[i],
Img1->Picture->Bitmap->Width * (Img1->Picture->Bitmap->PixelFormat) / 8) != 0)
return false;
return true;
}
Si son JPG, utiliza esta:
Código:
bool SameJPGImages(TImage *Img1, TImage *Img2)
{
TJPEGImage *J1 = new TJPEGImage;
TJPEGImage *J2 = new TJPEGImage;
__try {
J1->Assign(Img1->Picture->Graphic);
Img1->Picture->Bitmap->Height = J1->Height;
Img1->Picture->Bitmap->Width = J1->Width;
Img1->Picture->Bitmap->Assign(J1);
J2->Assign(Img2->Picture->Graphic);
Img2->Picture->Bitmap->Height = J2->Height;
Img2->Picture->Bitmap->Width = J2->Width;
Img2->Picture->Bitmap->Assign(J2);
}
__finally {
delete(J1);
delete(J2);
}
if( Img1->Picture->Bitmap->Height != Img2->Picture->Bitmap->Height ||
Img1->Picture->Bitmap->Width != Img2->Picture->Bitmap->Width ||
Img1->Picture->Bitmap->PixelFormat != Img2->Picture->Bitmap->PixelFormat)
return false;
for(int i =0; i < Img1->Picture->Bitmap->Height ; i++ )
if(memcmp(Img1->Picture->Bitmap->ScanLine[i],
Img2->Picture->Bitmap->ScanLine[i],Img1->Picture->Bitmap->Width *
(Img1->Picture->Bitmap->PixelFormat) / 8) != 0)
return false;
return true;
}
Ejemplo de llamada a las funciones:
Código:
// BMP
if ( SameJPGImages(Image1, Image2 ) ) // true si son iguales
...
//JPG
if ( SameJPGImages(Image1, Image2 ) ) // true si son iguales
...
De ese modo sólo tenés que enviar como argumento los dos
TImage seleccionados para comprobar su igualdad. Que es lo que solicitaste inicialmente.
Saludos.