/// <summary> /// Draws overlay. /// </summary> public void Draw(IBitmapEditor Editor, Func <Point, Point> Transform = null) { if (!_settings.Display) { return; } var clickRadius = _settings.Radius; var curPos = MouseCursor.CursorPosition; if (Transform != null) { curPos = Transform(curPos); } var d = clickRadius * 2; var x = curPos.X - clickRadius; var y = curPos.Y - clickRadius; Editor.FillEllipse(new SolidBrush(_settings.Color), new RectangleF(x, y, d, d)); var border = _settings.BorderThickness; if (border > 0) { x -= border / 2; y -= border / 2; d += border; Editor.DrawEllipse(new Pen(_settings.BorderColor, border), new RectangleF(x, y, d, d)); } }
public MainForm() { // Initializes controls edited with the WinForm designer (must be done BEFORE creating the BitmapEditor) InitializeComponent(); // Instantiating BitmapEditor (must be done AFTER InitializeComponent() !!) IBitmapFileIO bitmapIO = new BitmapFileIO(); editor = new BitmapEditor(bitmapIO, this); // Populates the comboboxes with a set of IBitmapFilter objects PrepareFilterComboboxes(); }
public void Draw(IBitmapEditor Editor, Func <Point, Point> PointTransform = null) { var img = GetImage(); if (img == null) { return; } try { var targetSize = img.Size; if (_settings.Resize) { targetSize = new Size(_settings.ResizeWidth, _settings.ResizeHeight); } var point = GetPosition(new Size((int)Editor.Width, (int)Editor.Height), targetSize); var destRect = new Rectangle(point, targetSize); var g = Editor.Graphics; if (_settings.Opacity < 100) { var colormatrix = new ColorMatrix { Matrix33 = _settings.Opacity / 100.0f }; var imgAttribute = new ImageAttributes(); imgAttribute.SetColorMatrix(colormatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); g.DrawImage(img, destRect, 0, 0, img.Width, img.Height, GraphicsUnit.Pixel, imgAttribute); } else { g.DrawImage(img, destRect); } } catch { } finally { if (_disposeImages) { img.Dispose(); } } }
public virtual void Draw(IBitmapEditor Editor, Func <Point, Point> PointTransform = null) { if (!_overlaySettings.Display) { return; } var text = GetText(); if (string.IsNullOrWhiteSpace(text)) { return; } var fontSize = _overlaySettings.FontSize; var font = new Font(FontFamily.GenericMonospace, fontSize); var size = Editor.MeasureString(text, font); int paddingX = _overlaySettings.HorizontalPadding, paddingY = _overlaySettings.VerticalPadding; var rect = new RectangleF(GetLeft(_overlaySettings, Editor.Width, size.Width), GetTop(_overlaySettings, Editor.Height, size.Height), size.Width + 2 * paddingX, size.Height + 2 * paddingY); Editor.FillRectangle(new SolidBrush(_overlaySettings.BackgroundColor), rect, _overlaySettings.CornerRadius); Editor.DrawString(text, font, new SolidBrush(_overlaySettings.FontColor), new RectangleF(rect.Left + paddingX, rect.Top + paddingY, size.Width, size.Height)); var border = _overlaySettings.BorderThickness; if (border > 0) { rect = new RectangleF(rect.Left - border / 2f, rect.Top - border / 2f, rect.Width + border, rect.Height + border); Editor.DrawRectangle(new Pen(_overlaySettings.BorderColor, border), rect, _overlaySettings.CornerRadius); } }
public void Draw(IBitmapEditor Editor, Func <Point, Point> PointTransform = null) { foreach (var overlaySetting in _overlaySettings) { if (!overlaySetting.Display) { continue; } Editor.FillRectangle(new SolidBrush(Color.Black), new RectangleF( GetLeft(overlaySetting, Editor.Width), GetTop(overlaySetting, Editor.Height), overlaySetting.Width, overlaySetting.Height)); } }