mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-28 23:42:13 +12:00
fixed #5560: If magnifier is close to edges then draw canvas background
This commit is contained in:
parent
f7b100800b
commit
1e8fb8a6fb
1 changed files with 10 additions and 4 deletions
|
@ -1253,6 +1253,9 @@ private Bitmap Magnifier(Image img, Point position, int horizontalPixelCount, in
|
|||
pixelSize = 10;
|
||||
}
|
||||
|
||||
Rectangle srcRect = new Rectangle(position.X - (horizontalPixelCount / 2) - CanvasRectangle.X,
|
||||
position.Y - (verticalPixelCount / 2) - CanvasRectangle.Y, horizontalPixelCount, verticalPixelCount);
|
||||
|
||||
int width = horizontalPixelCount * pixelSize;
|
||||
int height = verticalPixelCount * pixelSize;
|
||||
Bitmap bmp = new Bitmap(width - 1, height - 1);
|
||||
|
@ -1260,11 +1263,14 @@ private Bitmap Magnifier(Image img, Point position, int horizontalPixelCount, in
|
|||
using (Graphics g = Graphics.FromImage(bmp))
|
||||
{
|
||||
g.InterpolationMode = InterpolationMode.NearestNeighbor;
|
||||
|
||||
if (!new Rectangle(0, 0, img.Width, img.Height).Contains(srcRect))
|
||||
{
|
||||
g.Clear(canvasBackgroundColor);
|
||||
}
|
||||
|
||||
g.PixelOffsetMode = PixelOffsetMode.Half;
|
||||
|
||||
g.DrawImage(img, new Rectangle(0, 0, width, height), new Rectangle(position.X - (horizontalPixelCount / 2) - CanvasRectangle.X,
|
||||
position.Y - (verticalPixelCount / 2) - CanvasRectangle.Y, horizontalPixelCount, verticalPixelCount), GraphicsUnit.Pixel);
|
||||
|
||||
g.DrawImage(img, new Rectangle(0, 0, width, height), srcRect, GraphicsUnit.Pixel);
|
||||
g.PixelOffsetMode = PixelOffsetMode.None;
|
||||
|
||||
using (SolidBrush crosshairBrush = new SolidBrush(Color.FromArgb(125, Color.LightBlue)))
|
||||
|
|
Loading…
Reference in a new issue