问题标签 [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 投票
2 回答
6687 浏览

visual-studio-2008 - 使用 GDI+ 位图

我正在使用 GDI+ Bitmap 类将 IStream 转换为 HBITMAP。我在链接器输入中包含了 gliplus lib 文件,并且在构建路径中也包含了 dll。但是使用语句

给我一个错误C2065: 'Bitmap' : undeclared identifier

有人可以告诉我我在这里做错了什么。

谢谢。

编辑
我已经在我的实现中包含了适当的标题(gdiplus.h),我可以通过在上下文菜单中选择“转到定义”选项来查看位图的定义。

0 投票
2 回答
5113 浏览

c# - 将位图保存到 MemoryStream 的 GDI+ 异常

我在 Windows 窗体应用程序中遇到问题,当我保存到 MemoryStream 时,Bitmap.Save 失败。该问题似乎仅在一台机器上间歇性发生(到目前为止),而坏消息是在客户站点上。我无法在机器上调试,但我得到了一个堆栈跟踪,将问题缩小到一行代码。

这是我的代码的精简版本:

知道会发生什么吗?我很确定我的像素缓冲区是正确的,它始终可以在我们的开发/测试机器和其他客户站点上运行。

我对失败的可能原因的看法是

一种。位图构造函数不会复制像素数据,而是保留对它的引用,由于内存被释放,保存失败。我没有发现 MSDN 文档在这一点上很清楚,但我假设 Bitmap 复制像素数据而不是假设它被锁定。

湾。像素数据无效,导致 Save 方法失败。我对此表示怀疑,因为我的像素数据是每像素 24 位,所以据我所知它不应该是无效的。

C。.NET 框架存在问题。

如果您对其他可能的失败原因有任何想法,我将不胜感激,这样我就可以在我的应用程序中添加额外的检查和日志记录信息,这样我就可以将一些东西发送到现场。

0 投票
2 回答
13429 浏览

c# - 使用自定义 TTF 字体进行 DrawString 图像渲染

我在服务器端使用 GDI+ 创建一个流式传输到用户浏览器的图像。没有一个标准字体符合我的要求,所以我想加载一个 TrueType 字体并使用这个字体将我的字符串绘制到图形对象:

myCustom表示未安装在服务器上的字体,但我有 TTF 文件。

如何加载 TTF 文件以便在 GDI+ 字符串渲染中使用它?

0 投票
1 回答
702 浏览

visual-studio-2008 - 在 vc++ 中正确使用 char 数组

我正在尝试使用 GDI+ Bitmap 类将 IStream 转换为 HBITMAP。使用来自 Web 服务的数据填充 IStream 对象。我正在读取部分数据并将其附加到稍后与 Bitmap 类一起使用的对象中。

这是代码的相关部分

StreamStringCat 将字符串附加到 LPSTREAM 对象,因此我可以获得单个 LPSTREAM 对象。

循环仅在第一次运行良好。当再次进入 while 循环时,&data1 给出访问冲突异常。

有人可以告诉我应该如何解决这个问题。谢谢。

0 投票
3 回答
11341 浏览

vb.net - VB.NET 自定义控件(自​​定义绘图)刷新问题

我用 2 个项目创建了一个简单的解决方案。第一个项目(类库)包含一个名为 Container 的自定义控件,它使用圆角绘制自身。第二个项目(Windows 窗体)是一个测试应用程序。

如果我在第二个项目的主窗体中添加一个容器实例,它会很好地显示圆角。此外,当我运行第二个项目时,我可以看到容器。

但是,当我开始移动表单(单击并按住标题栏)时,尤其是当我快速移动它时,所有的绘图都搞砸了,一遍又一遍地绘制,但没有先清除它的表面......

我可以在 Form1.Move 事件中调用 Container1.Refresh(),但我不想每次都设置它,因为这也意味着我必须在Form1.Resize事件中调用 Container1.Refresh() 并且谁知道其他事件.. .

Container(控件)类本身是否存在我应该调用 Me.Refresh() 或 Me.Update() 或 Me.Invalidate() 的事件?

供参考(Form1.vb)

供参考(Container.vb):

0 投票
3 回答
5218 浏览

graphics - .NET 中的非仿射图像转换

.NET 库中是否有任何类、方法或任何一般算法来执行非仿射转换?(即不仅仅涉及旋转、缩放、平移和剪切的变换)

例如:

替代文字

替代文字
(来源:last100.com


非仿射变换还有其他术语吗?

0 投票
2 回答
6298 浏览

c# - 在没有外部dll的情况下制作图像负片的有效方法

这是在没有任何 dll 的情况下以有效、快速的方式从 C# Windows 窗体中的图像制作底片的解决方案吗?

0 投票
3 回答
3437 浏览

c# - .Net 等效于 ScaleHeight 和 Scalewidth

基本上我想做的是让我的绘画工作更容易。

早在 VB6 时代,就有一种叫做 Scalewidth 和 Scaleheight 的东西,我可以将它们设置为自定义值。前任。100。

然后,当我需要在可用空间的中心绘制一个点时,我会在 50,50 处绘制它。

.Net 中有什么方法可以让我获得类似的功能吗?

因此,无论我得到多大的绘图画布,我都可以使用绝对坐标在上面绘图。

0 投票
1 回答
501 浏览

c# - 使用 Lockbits 搜索黑色像素,但这是随机的吗?

我遇到了 Lockbits 的问题。我正在搜索黑色像素,因为它看起来不正确,所以我使用 WindowPopup 来打印每个像素的颜色,但这就像我的程序正在使用另一张图片一样。

替代文字 http://i208.photobucket.com/albums/bb91/Savaronna/pixel-1.jpg?t=1234874238

我将第一个发现的黑色像素标记为红色。如您所见,还有其他几个像素也应该匹配。我究竟做错了什么?

这是我的剧本,我需要监督吗?

0 投票
2 回答
17221 浏览

c# - 用渐变颜色画一条线

是否可以使用渐变色画线?

我希望能够绘制一条直线或曲线(如果可能),线的一端是蓝色,另一端是红色。

此外,每行可能需要一个以上的渐变,例如颜色从蓝色 -> 绿色 -> 红色。我在想这可能只是由多个绘制在一起的渐变线组成。