mirror of
https://github.com/gnh1201/welsonjs.git
synced 2025-02-06 06:54:58 +00:00
Update ScreenMatch.cs
This commit is contained in:
parent
41fcb8706f
commit
b2975e053c
|
@ -135,6 +135,22 @@ public class ScreenMatch
|
||||||
logger.LogInformation($"State changed: busy={busy}");
|
logger.LogInformation($"State changed: busy={busy}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private decimal GetScreenScalingFactor(Screen screen)
|
||||||
|
{
|
||||||
|
DEVMODE dm = new DEVMODE();
|
||||||
|
dm.dmSize = (short)Marshal.SizeOf(typeof(DEVMODE));
|
||||||
|
EnumDisplaySettings(screen.DeviceName, -1, ref dm);
|
||||||
|
|
||||||
|
decimal scalingFactor = Math.Round(Decimal.Divide(dm.dmPelsWidth, screen.Bounds.Width), 2);
|
||||||
|
if (scalingFactor > 1)
|
||||||
|
{
|
||||||
|
logger.LogInformation($"Screen with scaling detected: {scalingFactor}x");
|
||||||
|
logger.LogWarning("Please check the screen DPI.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return scalingFactor;
|
||||||
|
}
|
||||||
|
|
||||||
public class TemplateInfo
|
public class TemplateInfo
|
||||||
{
|
{
|
||||||
public string FileName { get; set; }
|
public string FileName { get; set; }
|
||||||
|
@ -527,7 +543,7 @@ public class ScreenMatch
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logger.LogInformation("Not found a outdated image");
|
logger.LogInformation("No match found an outdated image");
|
||||||
matchPositions = new List<Point>();
|
matchPositions = new List<Point>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -677,13 +693,7 @@ public class ScreenMatch
|
||||||
public Bitmap CaptureScreen(Screen screen)
|
public Bitmap CaptureScreen(Screen screen)
|
||||||
{
|
{
|
||||||
Rectangle screenSize = screen.Bounds;
|
Rectangle screenSize = screen.Bounds;
|
||||||
|
decimal scalingFactor = GetScreenScalingFactor(screen);
|
||||||
DEVMODE dm = new DEVMODE();
|
|
||||||
dm.dmSize = (short)Marshal.SizeOf(typeof(DEVMODE));
|
|
||||||
EnumDisplaySettings(screen.DeviceName, -1, ref dm);
|
|
||||||
|
|
||||||
var scalingFactor = Math.Round(Decimal.Divide(dm.dmPelsWidth, screen.Bounds.Width), 2);
|
|
||||||
logger.LogInformation($"Resolved the screen scale: {scalingFactor}");
|
|
||||||
|
|
||||||
int adjustedWidth = (int)(screenSize.Width * scalingFactor);
|
int adjustedWidth = (int)(screenSize.Width * scalingFactor);
|
||||||
int adjustedHeight = (int)(screenSize.Height * scalingFactor);
|
int adjustedHeight = (int)(screenSize.Height * scalingFactor);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user