问题标签 [gdi+]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
22465 浏览

c# - 如何在特定边界内绘制具有可变宽度边框的圆角矩形

我有一种方法可以绘制一个带边框的圆角矩形。边框可以是任何宽度,所以我遇到的问题是当边框很厚时,它会超出给定的边界,因为它是从路径的中心绘制的。

我将如何包含边框的宽度以使其完全适合给定的边界?

这是我用来绘制圆角矩形的代码。

0 投票
3 回答
1946 浏览

c++ - 需要帮助以使用 GDI+ 显示日语文本,而无需在 Windows XP 中安装东亚语言包

我正在编写一个日语测验程序,我不想要求人们安装适用于 Windows XP 的东亚语言包。我正在使用 GDI+ 来绘制文本。我尝试下载免费的 Unicode 字体并使用它来绘制文本。我在我的电脑上测试了它(安装了东亚包),它使用下载的字体正确显示了日文字符,但在另一台没有语言包的电脑上它不起作用。

我正在寻找有关如何完成这项工作的建议。该程序非常简单,仅使用 Win32 API、GDI+ 和 STL 用 C++ 编写。如果可能的话,我想只使用这些库。我确实有 UNICODE #defined。

我基本上用于绘制文本的代码粘贴在下面:

0 投票
1 回答
854 浏览

.net - 使用 Alpha 通道调整图像大小

我正在编写一些代码来生成图像 - 本质上我有一个很大的源图像并且包括透明区域。

我使用 GDI+ 打开该图像并添加其他对象。

我接下来要做的是将这个新图像保存得更小,所以我使用了 Bitmap 构造函数,它接受一个源 Image 对象以及一个高度和宽度,然后保存它。

我原以为 alpha 通道会像颜色通道一样平滑,但这并没有发生——它确实产生了几个半透明的像素,但总的来说它是非常块状的。是什么赋予了?

编辑:我认为我想要的是 SuperSampling,就像 Paint.NET 在设置为“最佳质量”时所做的那样

0 投票
3 回答
702 浏览

c++ - Gdiplus::Image::GetWidth() 和其他一堆吸气剂不应该是“const”吗?

为什么他们不是常量?

我相信这是有缺陷的 API 设计。还是我错过了什么?

对比

0 投票
1 回答
193 浏览

vb.net - 如何更改由 VisualStyleRenderer 绘制的形状的颜色?

我有一个将图表动态绘制到 winform 上的应用程序。

图表背景和单独的图表条都是使用 VisualStyleRenderer 对象绘制的:

这绘制了一个具有完整 XP 视觉样式的渲染良好的矩形,我的问题是:如何更改用于绘制形状的颜色?

0 投票
1 回答
577 浏览

c++ - gdiplus 从字符串构造图像

我正在使用 MySQL++ API 从 MySQL 数据库中提取图像。我将图像作为 mysqlpp::sql_mediumblob 获取,它是字符串的表示形式。现在我想使用 GDI+ 旋转一些图片,但我不知道如何使用这个构造函数:

与保存在 blob 中的图像。提前致谢。

0 投票
4 回答
8998 浏览

c# - 在 C#/GDI+ 中从 Format8bppIndexed 转换为 Format24bppRgb

好的,我有一个来自外部应用程序的 8 位索引格式的图像。我需要将此图像转换为完全相同大小的 24 位格式。

我尝试创建一个大小相同且类型为 Format24bppRgb 的新位图,然后使用 Graphics 对象在其上绘制 8 位图像,然后将其保存为 Bmp。这种方法不会出错,但是当我打开生成的图像时,BMP 标头具有各种时髦的值。高度和宽度是巨大的,此外,压缩标志和其他一些标志有有趣的(和大的)值。不幸的是,我的特殊要求是将此文件传递给特定的打印机驱动程序,该驱动程序需要具有特定标题值的 24 位图像(我试图通过 GDI+ 实现)

有人知道将索引文件“上转换”为未索引的 24 位文件的示例吗?如果不是一个例子,我应该从哪条路径开始编写自己的?

-Kevin Grossnicklaus kvgros@sseinc.com

0 投票
2 回答
3080 浏览

graphics - 如何在 .NET 3.5 中保存 EXIF 格式的图像文件

我想使用 System.Drawing.Image.Save 或使用 .NET 框架 v3.5 的 C# 应用程序中的类似方法以 EXIF 格式保存图像。MSDN 文档将 EXIF 列为 ImageFormat 的一个选项。但是,它似乎不受支持 - 至少在我不知道某些配置的情况下不支持。当我通过 ImageCodecInfo.GetImageEncoders() 枚举内置编码器时,不包括 EXIF。(在我的机器(Vista Ultimate x64)上内置的编码器是:BMP、JPEG、GIF、TIFF 和 PNG。)如果我使用 ImageFormat.Exif 属性保存图像,我只需获得默认的 PNG 格式。

如何使用 .NET 3.5 以 EXIF 格式保存图像?

0 投票
3 回答
2851 浏览

gdi+ - GDI+ 调整像素缩放的大小

我想使用 GDI 库调整图像的大小,这样当我将其调整为比以前更大时,就不会出现混合。(就像在绘画程序中放大图像时一样)

EG:如果我的图像是 2px 宽和 2px 高
(白色、白色、
白色、黑色)
,并且我将其调整为 100% 大,则它是 4px x 4px 高
(白色、白色、白色、白色、
白色、白色) , 白色, 白色,
白色, 白色, 黑色, 黑色,
白色, 白色, 黑色, 黑色)

我可以使用图形对象的哪些 InterpolationMode 或 Smoothing 模式(或其他属性)来实现这一点?到目前为止我尝试过的组合都会导致灰色出现在测试图像中。

这是我正在使用的代码

0 投票
4 回答
3772 浏览

c# - 在多个显示器上绘制所有窗口

我正在使用以下代码在单个显示器上绘图:

理论上,这应该 在任一监视器上使用。但是,它只利用初级。所以,为了解决这个问题,我得到了所有显示器的 DC 并尝试这样做。

去想,这甚至根本没有绘制到屏幕上。我已经为 CreateDC 尝试了各种重载,并搜索了 SO 和其他资源,但我很难过。


一旦解决了这个问题,任何人都知道如何通过使用 SHCHangeNotify 刷新桌面来消除闪烁?我只画了两条线,它像疯了一样闪烁..)