poe2-bot/src/Poe2Trade.Screen/IScreenReader.cs
2026-02-21 12:30:41 -05:00

27 lines
1.3 KiB
C#

using Poe2Trade.Core;
namespace Poe2Trade.Screen;
public interface IScreenReader : IDisposable
{
GridReader Grid { get; }
Task Warmup();
Task<byte[]> CaptureScreen();
Task<byte[]> CaptureRegion(Region region);
Task<OcrResponse> Ocr(Region? region = null, string? preprocess = null);
Task<(int X, int Y)?> FindTextOnScreen(string searchText, bool fuzzy = false);
Task<string> ReadFullScreen();
Task<(int X, int Y)?> FindTextInRegion(Region region, string searchText);
Task<string> ReadRegionText(Region region);
Task<bool> CheckForText(Region region, string searchText);
Task Snapshot();
Task<DiffOcrResponse> DiffOcr(string? savePath = null, Region? region = null);
Task<TemplateMatchResult?> TemplateMatch(string templatePath, Region? region = null);
Task<List<TemplateMatchResult>> TemplateMatchAll(string templatePath, Region? region = null, double threshold = 0.7);
Task<OcrResponse> NameplateDiffOcr(System.Drawing.Bitmap reference, System.Drawing.Bitmap current);
void SetLootBaseline(System.Drawing.Bitmap frame);
List<LootLabel> DetectLootLabels(System.Drawing.Bitmap reference, System.Drawing.Bitmap current);
System.Drawing.Bitmap CaptureRawBitmap();
Task SaveScreenshot(string path);
Task SaveRegion(Region region, string path);
}