/* * Copyright (c) 2025 LG Electronics Inc. * SPDX-License-Identifier: LicenseRef-LGE-Proprietary */ using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using Brush = System.Windows.Media.Brush; using Pen = System.Windows.Media.Pen; using Size = System.Windows.Size; using Cursor = System.Windows.Forms.Cursor; namespace VisionCommon { public static class WinformCursorHelper { public static Cursor CreateRectCursor(Brush brush, Pen pen, Size size) { var bitmap = CreateRectBitmap(brush, pen, size); IntPtr handle = bitmap.GetHicon(); return new Cursor(handle); } public static Bitmap CreateRectBitmap(Brush brush, Pen pen, Size size) { System.Drawing.Bitmap bitmap; var vis = new DrawingVisual(); using (var dc = vis.RenderOpen()) { dc.DrawRectangle(brush, pen, new Rect(0, 0, size.Width, size.Height)); dc.Close(); } var rtb = new RenderTargetBitmap((int)size.Width, (int)size.Height, 96, 96, PixelFormats.Pbgra32); rtb.Render(vis); using (var ms1 = new MemoryStream()) { var pngEncoder = new PngBitmapEncoder(); pngEncoder.Frames.Add(BitmapFrame.Create(rtb)); pngEncoder.Save(ms1); bitmap = new System.Drawing.Bitmap(ms1); } return bitmap; } } }