Ver Mensaje Individual
  #4  
Antiguo 23-12-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Pues lo dicho, debes escanear la imagen y comparar los pixels 1 a 1. Debería bastar con dos For anidados, uno para recorrer filas y otro columnas:

Código Delphi [-]
  Image1.Picture.Bitmap.Canvas.Pixel[0,0] = 
    Image2.Picture.Bitmap.Canvas.Pixel[0,0];
  ...

Para optimizar puede revisar la ayuda sobre ScanLine.

Otra opción (que se me ocurre ahora) podría ser la de no verlas como imágenes sino como ficheros genéricos. Tal vez esta pueda resultar más rápida.
(1) Grabas la imagen 1 en un fichero temporal 1 y la imagen 2 enun fichero temporal 2.
(2) Calculas el CRC de ambos.
(3) comparas los CRC.

Ambos tipos de comparación en teoría funcionan bien, en la práctica piensa que con que sólo exista un pixel diferente en ambas imágenes te darán como diferentes; Y eso en la mayoría de los casos no es lo deseado.

Otro tema diferente es la utilización de algoritmos que permitan un % de error; De forma que si las imágenes son iguales en un 98% (por ejemplo) las considere iguales.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita