我需要打印一個活動窗口的屏幕,並確定它是否包含其中的特定子圖像。要檢查截圖(largeImage)是否包含smallImage,我使用AForge庫(來自NuGet)/ ProcessImage()方法。圖像比較後,我需要刪除的截圖(largeImage),但我得到一個異常的說法:因爲它正在被其他進程使用:「\ largeImage C」AForge.Imaging ProcessImage()方法不釋放圖像文件
該進程無法訪問該文件。
經過一些調試後,我可以看到它是鎖定文件的FindSubImage()方法。
FindSubImage()來實現這樣的:
private bool FindSubImage(string largeImagePath, string smallImagePath)
{
Bitmap largeImage = (Bitmap)Bitmap.FromFile(largeImagePath);
Bitmap smallImage = (Bitmap)Bitmap.FromFile(smallImagePath);
ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0.8f);
TemplateMatch[] match = tm.ProcessImage(largeImage, smallImage);
if (match.Length > 0)
{
return true;
}
return false;
}
largeImage是ofcourse我只是把截圖。
我試着用(){}包裝的代碼,但它給了我一個錯誤說:在使用語句中使用
類型必須是隱式轉換爲「System.IDisposable的」
任何想法如何在使用後刪除largeImage?