gdi+相关内容

Graphics.DrawString 与 TextRenderer.DrawText 哪个可以提供更好的质量

TextRenderer 基于 GDI,Graphics.DrawString 基于 GDI+.在图像上绘制文本时,这些函数中的哪一个可以提供更好的文本质量. 解决方案 我的 2 美分:我总是使用 Graphics.DrawString,除非当我需要为我的(Windows 窗体)进行自定义绘画时控件.例如,在设置了 OwnerDraw 的列表框中,如果我附加了一个完全绘制项目(包括项目文本 ..
发布时间:2021-12-22 19:41:31 C#/.NET

绘制透明按钮

我正在尝试在 C# (.NET 3.5 SP1) 中创建一个透明按钮,以便在我的 WinForms 应用程序中使用.我已经尝试了所有方法来使按钮透明(它应该在按钮下方显示渐变背景),但它不起作用. 这是我正在使用的代码: 公共类 ImageButton : ButtonBase, IButtonControl{公共图像按钮(){this.SetStyle(ControlStyles.Sup ..
发布时间:2021-12-18 20:06:56 C#/.NET

GDI+ 是否具有标准图像编码器 CLSID?

GDI+ Image::Save 方法需要一个 CLSID 参数来指定要使用的编码器.该文档指向一些示例代码获取与特定 MIME 类型关联的编码器,例如 image/jpeg 或 image/png.然而,我对复制半页函数只是为了支持 1 行调试帮助而犹豫不决,我将中间结果保存到磁盘. 不应该有标准编码器的标准 CLSID 列表吗?我在哪里可以找到这样的列表?我一直无法通过搜索 Micros ..
发布时间:2021-12-18 08:11:55 C/C++开发

有没有比 GDI GetPixel() 更快的替代方法?

我在 .NET 应用程序中使用来自 gdi32.dll 的 GetPixel() 对屏幕上任意位置的像素颜色进行采样.它工作正常,但对我来说是一个主要的性能瓶颈. 有没有更快的方法? 解决方案 使用 Bitmap 的 LockBits() 方法可以快速访问像素.这将返回给您一个包含指向像素数据开头的指针的对象,您可以使用不安全的代码来访问内存. https://web.arch ..
发布时间:2021-12-18 00:11:02 C#/.NET

在 C++ Win32 中创建透明窗口

我正在创建一个非常简单的 Win32 C++ 应用程序,其唯一目的是仅显示半透明的 PNG.窗口不应有任何镀铬,并且所有不透明度都应在 PNG 本身中控制. 我的问题是当窗口下的内容发生变化时窗口不会重新绘制,因此 PNG 的透明区域“卡住"了应用程序最初启动时窗口下的内容. 这是我设置新窗口的行: hWnd = CreateWindowEx(WS_EX_TOPMOST, szWin ..
发布时间:2021-12-17 23:37:48 C/C++开发

使用矩阵单独旋转矩形

有一点绘图复杂性,你会称之为.当涉及到矩阵和在形状上绘制旋转时,我的数学有点生疏.下面是一段代码: private void Form1_Paint(object sender, PaintEventArgs e){g = e.Graphics;g.SmoothingMode = SmoothingMode.HighQuality;旋转(e);g.DrawRectangle(new Pen(Co ..
发布时间:2021-12-17 15:17:51 C#/.NET

翻转绘制文本/字符串的 GraphicsPath

我的文本类中有这个方法,但我似乎无法翻转整个文本. 我正在使用矩阵来转换用于绘制字符串的 GraphicsPath. 这是我使用@Jimi 的回答后的代码: public LayerClass DrawString(LayerClass.Type _text, string text, RectangleF rect, Font _fontStyle, Brush Brush, flo ..
发布时间:2021-12-08 14:12:59 C#/.NET

图像未在正确位置绘制

Bitmap image = ReadBitmap("image.png");位图 imageCopy = new Bitmap(image);位图画布 = new Bitmap(imageCopy.Width+100, imageCopy.Height);//从这个位图中可以得到图形,因为它有正确的PixelFormat使用(图形 g = Graphics.FromImage(画布)){//将原 ..
发布时间:2021-12-08 14:04:40 C#/.NET

在自定义控件中隐藏不需要的属性

这是在派生控件中隐藏属性的方式吗? 公共类 NewButton : 按钮 ... [可浏览(假)]公共新 ContentAlignment TextAlign { 获取;放;} 这也会在设计器的“属性"窗口中隐藏该属性,但我怎样才能在代码中隐藏该属性? 解决方案 从代码中,你可以最接近地隐藏它,也许直接调用会很痛苦 - 请注意,即使隐藏它也是可调用的,并且这些都不能通过演员 ..
发布时间:2021-12-08 14:03:12 C#/.NET

透明重叠圆形进度条(自定义控件)

我在使用自定义圆形进度条控件时遇到了一些问题.我试图在右下角重叠它们两个.它有一个透明的背景,在WinForms中明明是显示背景,但互不影响. 这是我看到的: 我一直在研究 stackoverflow,并找到了一些解决使用自定义图片框控件遇到此问题的人的答案.大多数解决方案,似乎对圆形进度条控件没有影响.我尝试过的一些解决方案是. protected override Create ..
发布时间:2021-12-08 14:03:02 C#/.NET

绘制圆后如何将其视为控件?- 移动和选择形状

实际上,点击每个圆圈后我想改变它的颜色,例如,我想让它变成红色,总的来说,我想把它当作控件. 当我双击图片框时,我知道如何绘制代表图形节点的圆圈.我正在使用以下代码: public Form1(){初始化组件();pictureBox1.Paint += new PaintEventHandler(pic_Paint);}公共点位置光标{获取;放;}私人列表点数 = 新列表();公共 i ..
发布时间:2021-12-08 13:42:59 C#/.NET

不在 OnPaint() 中绘制时的双缓冲:为什么不起作用?

我正在使用 C#/.Net 开发一个简单的矢量绘图应用程序.绘图是在面板中完成的,但我并没有使用 OnPaint() 事件来处理所有这些事件 - 事实上 OnPaint() 甚至只是调用了另一个方法来实际绘制文档中的所有内容. 我尝试添加双缓冲,但是当我将 DoubleBuffered 设置为 true 时,闪烁问题更加严重.为什么是这样?如果我想对控件进行双缓冲,我是否绝对必须使用提供的 ..
发布时间:2021-12-08 13:42:25 C#/.NET

如何用c#制作两个透明层?

连续三层, picturebox1(.jpg) ->标签 1 ->picturebox2(.png透明)我想要的是使label1和pictrurebox2对pict​​urebox1透明,以便label1可以通过picturebox2看到,但它不起作用.. public Form1(){初始化组件();label1.Parent = pictureBox1;label1.BackColor = ..
发布时间:2021-12-08 13:33:49 C#/.NET

如何在 C# 中拖动和移动形状

在 C# WindoeFormsApplication 中,是否可以选择,从而使用鼠标移动或删除绘制的形状?就像 windows 绘图程序一样. 形状绘制完全正常,所有点都存储在某个数组中.作为这个线描示例 点最新{ get;放;}列表_points = new List();protected override void OnMouseMove(MouseEventArgs e){bas ..
发布时间:2021-12-08 13:33:36 C#/.NET

使用 MaxHeight 和 MaxWidth 约束按比例调整图像大小

使用System.Drawing.Image. 如果图像宽度或高度超过最大值,则需要按比例调整大小.调整大小后需要确保宽度和高度都不超过限制. 宽度和高度将自动调整直到不超过最大值和最小值(可能的最大尺寸)并保持比例. 解决方案 喜欢这个吗? public static void Test(){使用 (var image = Image.FromFile(@"c:\logo. ..
发布时间:2021-12-08 13:22:56 C#/.NET

带文本的半透明圆形控件

我正在做一个项目,我需要添加一个圆形控件,中间有一些文本. 我的问题是圆圈太小,当我调整它的大小时,它与其他控件重叠.我想画一个和正方形一样宽的圆. 除此以外.如何使控件的背景透明? 我正在使用以下代码: protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);使用 (Bitmap bitmap = new B ..
发布时间:2021-12-08 13:20:13 C#/.NET

Image.Save(..) 抛出 GDI+ 异常,因为内存流已关闭

我有一些二进制数据要保存为图像.当我尝试保存图像时,如果用于创建图像的内存流在保存之前关闭,则会引发异常.我这样做的原因是因为我正在动态创建图像,因此..我需要使用内存流. 这是代码: [测试方法]public void TestMethod1(){//获取二进制数据.byte[] data = File.ReadAllBytes("Chick.jpg");//在使用流之前读入数据但不关闭 ..
发布时间:2021-12-07 10:13:10 C#/.NET

禁用图片框上的图像混合

在我的 Windows 窗体程序中,我有一个 PictureBox,其中包含一个小图像,5 x 5 像素. 当将此位图分配给 PictureBox.Image 属性时,它会变得非常模糊. 我试图找到诸如混合模式、模糊模式或抗锯齿模式之类的东西,但我没有运气. 这就是我想要的 这不是我想要的 解决方案 问题: 位图的大小比用于显示它的容器小得多,被模糊,并且明确定义的颜色区域的 ..
发布时间:2021-12-06 10:30:55 其他开发

用于 ASP.NET 的 System.Drawing 的替代方案?

经过几天追踪奇怪的 GDI+ 错误,我在 MSDN: 不支持在 Windows 或 ASP.NET 服务中使用 System.Drawing 命名空间中的类.尝试从这些应用程序类型之一中使用这些类可能会产生意外问题,例如服务性能下降和运行时异常. 我不知道在这种情况下“ASP.NET 服务"是否意味着“Web 应用程序",但“服务性能下降"似乎涵盖了“GDI+ 中发生一般错误"和“超出 ..
发布时间:2021-12-02 09:25:11 C#/.NET