Autor
|
Tema: API Comparar Imagenes (Leído 11,817 veces)
|
gulabyte
Desconectado
Mensajes: 97
|
Wenas! Me podría decir álguien el nombre de la API para comparar imagenes?? es para la captura, quiero que si dos imagenes capturadas son iguales no guarde la imagen que es igual....
he buscado por el foro pero no he encontrado justo eso, lo que yo quiero es que compare el 100% de la imagen, si cambiara por ejemplo la hora de la barra de herramientas pues que guardára la imagen o no sé eso ya luego..
gracias de antemano!
salu2
|
|
|
En línea
|
|
|
|
Jaixon Jax
Desconectado
Mensajes: 859
|
Si esa Api existiera yo estuviera en las Islas Caiman .
|
|
|
En línea
|
|
|
|
BrokenWindow
Desconectado
Mensajes: 36
|
Podrias hace la comprovacion con dos for anidados y llamando a GetPixel().
Saludos
|
|
|
En línea
|
|
|
|
Jaixon Jax
Desconectado
Mensajes: 859
|
Podrias hace la comprovacion con dos for anidados y llamando a GetPixel().
Saludos
Si son dos capturas de pantalla funcionara el problema viene cuando son dos fotos una recomendacion seria que no utilices un coeficiente de 100 % de igualdad ya que algunos pixeles podrian no ser iguales para un ScreenShot un 90% esta Bien ... Saludos ...
|
|
|
En línea
|
|
|
|
gulabyte
Desconectado
Mensajes: 97
|
yo uso la clase cJPEG.cls para crear el archivo de captura... si no cambia nada en la pantalla debería ser igual pixel por pixel no¿ conlcusión que hay que hacerlo con GetPixel y comparar la razón de igualdad..
grace mille
salu3
|
|
|
En línea
|
|
|
|
KJD
Desconectado
Mensajes: 314
|
y que tal un md5? osea si solamente queres saber si 2 imagenes son iguales no necesariamente tenes que "verla" me epxlico.
|
|
|
En línea
|
"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"
"Keyboard not Found, press F1 To Continue" WTF???
|
|
|
agus0
Desconectado
Mensajes: 360
|
Aquí tienes un codigo que compara dos imagenes y dice si son o no iguales, lo probe y anda perfecto, lo encontre por hay tirado en la web, no es mio Private Declare Function GetBitmapBits Lib "gdi32" _ (ByVal hBitmap As Long, ByVal dwCount As Long, _ lpBits As Any) As Long
Private Declare Function GetObject Lib "gdi32" Alias _ "GetObjectA" (ByVal hObject As Long, ByVal nCount _ As Long, lpObject As Any) As Long
Private Type BITMAP bmType As Long bmWidth As Long bmHeight As Long bmWidthBytes As Long bmPlanes As Integer bmBitsPixel As Integer bmBits As Long End Type
Private Function GetBitmapData(pic As PictureBox) As String
Dim tBitmap As BITMAP Dim bPicBytes() As Byte Dim lByteLen As Long Dim lBytesPerLine As Long
GetObject Picture1.Image.Handle, Len(tBitmap), tBitmap
lBytesPerLine = (tBitmap.bmWidth * 4) lByteLen = lBytesPerLine * tBitmap.bmHeight ReDim bPicBytes(1 To lByteLen) GetBitmapBits pic.Picture.Handle, UBound(bPicBytes), bPicBytes(1) GetBitmapData = bPicBytes End Function
Private Sub Form_Load() MsgBox GetBitmapData(Picture1) = GetBitmapData(Picture2) End Sub
|
|
|
En línea
|
|
|
|
cobein
|
A ver, considerando que tenes una pantalla comun con una resolucion normal unos 1280 x 667 y estas usando 4 bytes por pixel como en el ejemplo y a todo esto le sumamos que lo estas guardando en memoria como un string que es unicode osea que es el doble de tamano y como para finalizar, esto pasa 2 veces por lo menos como para realizar la comparacion.. nos quedaria asi.
1280 * 667 * 4 * 2 * 2 = 13660160 algo asi como 13.03 megabytes ....
mmm esto en mi 286 no anda seguro. :/ necesito un upgrade urgente.
|
|
|
En línea
|
|
|
|
gulabyte
Desconectado
Mensajes: 97
|
gracias por responder! lo del md5 es perfecto KJD abr si me las arreglo para hacerlo mediante visual basic... el código funciona bien y es rápido... las imagenes que crea el módulo son de unos 100kb oseake se podría hacer...
|
|
|
En línea
|
|
|
|
|
|
|