codice:
publicstaticboolConfrontoImmagini(Bitmap imm1,Bitmap imm2)
{
/*
imm1 è l'immagine normale
imm2 è l'immagine ritagliata
*/
int w1 = imm1.Width, h1 = imm1.Height; // ottengo la larghezza dell'immagine sulla variabile w1, ottengo l'altezza dell'immagine su h1
int w2 = imm2.Width, h2 = imm2.Height; // ottengo la larghezza dell'immagine sulla variabile w2, ottengo l'altezza dell'immagine su h2
bool a =false;
for(int wImm =0; wImm != w1; wImm++) // faccio un ciclo per controllare tutti i pixel in larghezza dell'immagine img1
{
for(int hImm =0; hImm != h1; hImm++) // faccio un ciclo per controllare tutti i pixel in altezza dell'immagine img1
{
if((w1 - wImm)- w2 >=0&&(h1 - hImm)- h2 >=0) // se la grandezza in pixel dell'immagine img1 non controllata è almeno grande come l'immagine img2
{
if(imm1.GetPixel(wImm, hImm)== imm2.GetPixel(0,0)) // se il pixel di img1 nelle coordinate wImm hImm è uguale al primo pixel di img2
for(int wImm2 =0; wImm2 != w2; wImm2++) // faccio due cicli per controllare se i pixel successivi sono uguali ad img2
{
for(int hImm2 =0; hImm2 != h2; hImm2++)
{
if(imm1.GetPixel(wImm + wImm2, hImm + hImm2)== imm2.GetPixel(wImm2, hImm2)) a =true;
else{ a =false;break;}
}
if(!a)break;
}
}
//else { wImm = w1; hImm = h1; }
if(a)break;
}
if(a)break;
}
return a;
}
se la fuzione restituisce true allora l'immagine è una parte dell'altra immagine, altrimenti no