I have basic problem with any method which use TRect.
It seem the range is not calculated well and always is short by 1.
For instance:
procedure GetSCR(dst: TBGRABitmap);
var
r: TRect;
begin
// It is bug in BGRA, need to be +1
r := Rect(0, 0, Screen.Width - 1 + 1, Screen.Height - 1 + 1);
dst.TakeScreenShot(r);
That is. If resolution is 1920x1080, r should be Rect(0, 0, 1919,1079), not Rect(0, 0, 1920 1080).
This is obvious. If I need just one pixel, (0,0) for instance, r should be Rect(0, 0, 0 0), not Rect(0, 0, 1 1) as currently. And this bug is not specific for this, but for any method which use rectangle ranges.
That makes quite a bit of problems with precise image manipulation and require quite a bit of effort of something need to be ported from Delphi.
Circular, can you fix that please?