问题标签 [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 回答
362 浏览

c# - 如何处理 ColorMatrix 溢出?

在开始之前,我使用的是 C#。我想使用 ColorMatrix 类做一些变换。问题是有时 r、g 或 b 会发生溢出。矩阵没有将值限制在 255,而是循环并再次从 0 开始。这意味着,对于应该显示为全白的图像,它们又开始变黑。我正在使用它来模拟线扫描相机在不同线速率下的强度。有谁知道解决这个问题的方法?

顺便说一句,我确实有其他方法,我可以自己做矩阵变换,但我对这个特定问题的解决方案更感兴趣(如果有的话)。

0 投票
4 回答
16441 浏览

c# - 无法将图像渲染到 HttpContext.Response.OutputStream

基本上我试图在 ASP.NET 处理程序中呈现一个简单的图像:

但我得到以下异常:

解决方案是使用它而不是将图像写入 OutputStream:

所以我只是好奇为什么第一个变体有问题?

编辑:HRESULT 是 80004005,它只是“通用”。

0 投票
2 回答
1809 浏览

.net - 有时加载 GIF 冻结

我正在尝试在 Windows 窗体顶部使用加载叠加层,它在带有加载 GIF 的 Windows 窗体顶部添加 50% 的不透明层,同时它在后台线程中执行它需要执行的操作。叠加层是我在 onPaint 事件中绘制的窗口窗体。

加载覆盖在多个不同的表单加载上工作正常,但在 30 秒上传过程中被召唤以确保耐心时无法正常工作(将 Word 文档打印为 PDF,然后将该 PDF 上传到 SQL Server)。此上传从表单中收集一些数据,将其放入对象中,然后完全在后台线程上运行。加载覆盖将出现,显示加载 GIF 的第一帧,然后冻结。onPaint 被触发并且图像框架正在更新,但它不可见

构造函数将表单设置为 UserPainted:

然后,在 Form.Shown 事件中调用 ImageAnimator.Animate 方法:

onFrameChanged 事件处理程序只是使表单无效:

然后 onPaint 被覆盖并绘制:

最后,在 Form Closing 事件中调用 ImageAnimator.StopAnimate 方法:

以下是调用和关闭加载叠加层的方式:

0 投票
1 回答
1140 浏览

c# - 相当于 Gdi+ 中的 MM_ISOTROPIC 映射模式

我有一些使用各向同性映射模式的 C++/GDI 绘图代码。我有一个带有大量绘图代码的大型对象模型,我试图在 C# 项目中重用这些代码以绘制到内存位图。我在正确设置 System.Graphics 对象以生成相同的图片时遇到问题。有没有办法在 System.Graphics 对象中设置等效的 MM_ISOTROPIC 映射模式?

这是准备映射模式的 C++/GDI 的相关代码。

0 投票
1 回答
12211 浏览

c# - 如何将一个图形对象复制到另一个

我正在尝试将一个图形对象的内容复制到另一个,但我唯一能找到的是基于 using GDI32.DLL,如果可能的话我宁愿避免使用。

有谁知道如何/是否可以使用托管代码?我不介意答案是在 C# 还是 VB.Net 中。

这是我目前拥有的:

0 投票
2 回答
2266 浏览

graphics - WIC和GDI+是什么关系?

我对 Windows 映像组件 (WIC) 和 GDI+ 之间的关系很模糊。我过去做过一些工作,表明,例如,WIC 产生了视觉上优越的 GIF 编码,但我很惊讶我没有看到更多的人使用它来进行图像处理而不是 GDI+。我知道它没有 GDI+ 的绘制操作,但对于编码/解码来说,它似乎更胜一筹。那么为什么我们看不到迁移呢?

0 投票
1 回答
3743 浏览

delphi - GDIPlus.dll 访问冲突错误

我收到一个访问冲突错误,指出“模块 gdiplus.dll 中地址 4EC842CD 的访问冲突”。使用的语言: - Delphi 10,Borland Studio 2006 环境: - Windows XP 我有一个应用程序,我在 Delphi 中使用文件打开对话框,这有助于用户从系统的任何位置打开某种类型的文件。默认情况下,它显示默认路径中该类型文件的列表。现在,当我单击应用程序中的“打开”按钮时,它会显示“文件打开”对话框,并帮助用户从系统的任何位置打开该特定类型的文件,但它会给出错误说明“模块 gdiplus 中地址 4EC842CD 的访问冲突.dll”。这是一个随机错误,并非每台 PC 都会出现。

0 投票
1 回答
3341 浏览

html - PdfSharp、GDI+ 和 HTML 打印

我目前有一个“PrintingWebService”,我从 AJAX 页面调用它,其中包含使用 PDF Sharp 和 PDFSharp 的 GDI+ 模式构建高度定制的 PDF 打印输出所需的所有信息,该模式采用 DrawString 和其他基本上像 GDI+ 一样工作的命令他们被 PDF 所吸引。

然后,我将 PDF 文件保存到 Web 服务器上的某个位置,并从 Web 服务返回文件名,然后 AJAX 页面将打开一个包含 pdf 文件的新窗口。

到目前为止,它运行良好,但是,我想要打印出我的 AJAX 页面的一部分,但我还没有提出解决方案。我有一个 TinyMCE 编辑器的 HTML 内容字符串,我想在 PDF 页面的底部显示。

我正在寻找可以用于此目的的某种工具。即使是打印到 GDI+ 的开源代码,我也可以通过获取源代码并将其翻译为使用 PdfSharp 的 GDI+(类名类似于 XGraphics,每个类在 GDI+ 名称前都有 X)来使用。

如果必须,我将限制 TinyMCE 可以生成的 HTML 并编写自己的渲染器,但这将是一个很大的挑战,所以我首先在寻找其他解决方案。

我已经远离了对打印机友好的页面方法,因为我想使用我现有的代码构建一个与现有 WinForms 打印输出几乎相同的页面。使用 PdfSharp,我能够转换除文本区域之外的所有代码(在 WinForms 版本中使用 RichTextBox 和 RTF)。

0 投票
3 回答
2020 浏览

visual-c++ - Gdiplus 64 位颜色

我正在创建一个 64 位位图并使用 Graphics 对象将其包装以在其上绘制。问题是 Gdiplus 颜色类只有 32 位(每个组件只有字节,即最大 255)所以我如何使用 gdiplus 绘制 64 位图像?例如

0 投票
1 回答
1431 浏览

.net - 在 GDI+ 中使用“DrawString”的小型大写字母/多种字体和粗体

我想用小型大写字母结合不同字体的不同单词写出一些文本。

为了澄清,我可能希望将消息“欢迎来到我们的新网站”生成为页面标题的 PNG 文件。

  • 文本将是小型大写字母——所有内容都大写,但“W”、“N”和“W”稍大。
  • “新网站”将采用与文本其余部分不同的字体。

有没有办法我可以做到这一点而无需完全手动完成?

做这样的事情在概念上是我想做的:

到目前为止我能找到的最好的方法是here,但我担心我会不厌其烦地手动执行此操作并最终导致一些可怕的字距调整或跟踪 问题。

编辑:我应该提到这是在 ASP.NET 中完成的,因此它需要尽可能快速和精简。我希望它是自动化的,这样我就可以轻松地进行本地化,而不必创建大量的小图像。