현재이 프로그램에서 캡처 한 스크린 샷에서 비트 맵을 검색하는 코드가 있지만 비트 맵이 스크린 샷에 세 번 나타나고 두 번째 클릭을 클릭합니다.비트 맵 감지
이렇게 할 방법이 있습니까? 사전에 감사의 많은 ...
코드 : 그건 정말 도움이된다면
private Bitmap Screenshot()
{
Bitmap bmpScreenShot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics g = Graphics.FromImage(bmpScreenShot);
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
return bmpScreenShot;
}
private bool FindBitmap(Bitmap BmpNeedle, Bitmap BmpHaystack, out Point location)
{
for (int outerX = 0; outerX < BmpHaystack.Width - BmpNeedle.Width; outerX++)
{
for (int outerY = 0; outerY < BmpHaystack.Height - BmpNeedle.Height; outerY++)
{
for (int innerX = 0; innerX < BmpNeedle.Width; innerX++)
{
for (int innerY = 0; innerY < BmpNeedle.Height; innerY++)
{
Color cNeedle = BmpNeedle.GetPixel(innerX, innerY);
Color cHaystack = BmpHaystack.GetPixel(innerX + outerX, innerY + outerY);
if (cNeedle.R != cHaystack.R || cNeedle.G != cHaystack.G || cNeedle.B != cHaystack.B)
{
continue;
}
}
}
location = new Point(outerX, outerY);
return true;
}
}
location = Point.Empty;
return false;
}
public void findImage()
{
Bitmap bmpScreenshot = Screenshot();
Point location;
bool success = FindBitmap(Properties.Resources.xxx, bmpScreenshot, out location);
}
이 몰라, 나는 그것을이 원하는 모든 발견 된 두 번째 비트 맵을 클릭합니다.
친구가 내 스크린 샷을 눈금으로 나눠서 제안했는데 그 이유 때문에 눈금을 그리는 방식을 사용하고 있거나 두 번째 비트 맵을 찾을 수 있습니까?
업데이트 : 내 화면에 똑같은 이미지 5 개가 있다고 가정 해보십시오. 내 프로그램이 찾은 세 번째 비트 맵을 클릭하도록합니다.
부울이 아닌 nullable Point 'Point'를 반환하고 결과를 null로 확인 하시겠습니까? 'Point? p = FindBimap(); 경우 (p.HasValue) {}' – abatishchev
@abatishchev 별로 난 후였다 발견 한 두 번째 비트 맵 ... '경우 (성공 == true)가 { Cursor.Position을 클릭 한 후 = 위치하고있어 ; (두 번째 비트 맵을 클릭하면 해당 스크린 샷을 찾습니다) } ' 정직하게 말하면 나는 현재 갖고있는 것에 만족합니다. 그것이 그것을 발견 두 번째 비트 맵을 클릭 얻으려고 ... – Matt
안녕 Matt. "스크린 샷에서 비트 맵 찾기"라는 설명으로 인해 문제가 있습니다. 비트 맵은 파일 헤더 설명이고 스크린 샷은 이미 파일 이미지 헤더가 필요한 폰의 이미지입니다. 사용자가 두 번 클릭했는지 또는 쉽게 해결할 수있는 두 번째 이미지를 찾았는지 확인하는 방법을 묻고 싶다면 설명 해주십시오. 여기에서 이미지 검색을 사용하여 샘플 프로젝트를 다운로드 할 수 있습니다. http://www.activevb.de/rubriken/kolumne/kol_30/wp7_einfuehrung.html – Nasenbaer