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

pdf - 打印机模拟器、PDF Writer 等

我将很快致力于我正在开发的产品的“打印”和“打印预览”功能。我没有打印机,也无意购买。我正在寻找任何可以用来测试我的打印代码的免费软件。

我可以用来模拟打印机的最佳免费选项是什么?我在 Windows 上使用 GDI+,但非常欢迎 PDF 编写器等独立于平台的选项。

0 投票
2 回答
5909 浏览

c# - 调整图像质量降低

我编写了一个简单的 PhotoEditor 辅助类来缩小和裁剪上传到我网站的图像。一切正常,但是当图像保存到文件时,我发现质量不令人满意。我已经阅读了您可以在下面调整的不同设置,这是我调整大小的设置,裁剪是相同的。

如您所见,我正在使用建议的插值、平滑等设置。我还将保存质量为 100 的 jpeg。

即使将尺寸缩小到其原始尺寸的 75%,生成的图像也有明显的模糊和伪影。我环顾四周,这是推荐的方式。我找到了一种简单的调整大小的方法,并决定试一试。

令人惊讶的是,这会产生更好的图像,尽管它的内存占用要大一些~30%。

我的问题是,我在调整大小例程中缺少什么差异和设置,这可能导致更丑陋的结果。我想让我的调整大小例程产生与简单调整大小完全相同的结果。

非常感谢您的帮助。这是我第一次涉足图像处理。

编辑

简单调整大小 (82KB)

简单 http://img189.imageshack.us/img189/2137/simpleresize.jpg

我的调整大小 (55KB)

复杂 http://img12.imageshack.us/img12/4023/complexresize.jpg

0 投票
2 回答
4673 浏览

c++ - 如何将 gdi+ 类似位图的结构转换为 HDC?

如何将类似位图的结构转换为 HDC?

我现在正在用 c++、gdi 编写图像处理程序。

如果我有HDC。我可以通过以下代码在 gdi 中的 HDC 上绘制我喜欢的任何内容。

我的应用程序基于 FreeImage。我制作了 fipImage。(使用像 Bitmap 这样的数据结构)

但是如果我想在fipWinImage上绘图,现在我必须将fipWinImage复制到Bitmap上,然后在Bitmap上绘图,最后再将位图转换为fipImage,这是耗时耗内存的。

将 fipImage 转换为位图 -> 在位图上绘制 -> 将位图转换为 fipWinImage

我想直接从 fipImage 构建一个 HDC。并直接在 fipWinImage 上绘制我该怎么做?

0 投票
2 回答
2644 浏览

c# - 如何验证 C# / .Net 中的 JPEG 图像未损坏

我需要能够验证 JPEG 图像是否有效且未损坏。这与问题 210650 不同,问题 210650只是要求验证它实际上是 JPEG 图像。从带有验证的图像加载,例如:

不会为剪切的图像抛出异常。目前我们的解决方案是尝试使用外部 GD 脚本打开文件并解析从 gdImageCreateFromJpeg 抛出的任何错误。

但是必须有一些 .Net 代码来验证 JPEG 不仅有效,而且包含完整的图像?

0 投票
4 回答
3309 浏览

windows - 如何使用 GDI 即时创建具有 Alpha 通道的位图?

我正在使用分层窗口并在屏幕上绘制一个圆角矩形。但是,我想平滑锯齿状的边缘。我认为我需要为此进行 alpha 混合。有没有办法用 GDI 做到这一点?

0 投票
3 回答
3084 浏览

c# - 在 C# 中计算格式化字符串的宽度和高度

我正在尝试使用 XSL(XML-FO) 生成 PDF 以从数据库转换生成的 XML。

由于此文档的分页规则复杂,因此在我生成将由 XSL 使用的 XML 时,计算确定分页符。我注意到这些计算得到的结果不一致。例如,就高度而言,所需的打印区域为 9 英寸,然后我将其乘以 72(即每英寸 72 点)= 648 点将其转换为点。

因此,对于每一行,我使用 MeasureString 来获取行的高度,然后从 648 中减去该高度,以查看是否仍有可用空间来打印该行。但是,每当确定分页符时,底部都会留下一个很大的空白。好像 648pt 转换是错误的。现在我还担心 MeasureString 方法返回的高度也可能是错误的。

我为这篇冗长的帖子道歉,但我感谢任何关于我可能做错的输入/建议。

非常感谢!

0 投票
2 回答
455 浏览

.net - 在像素之间插入空间

我需要能够使用 GDI 在屏幕上绘制具有特定分辨率(~40 DPI)的位图,并且还能够复制每个像素之间的间距。该空间是像素大小的一小部分,但它是肉眼可见的。

无论如何设置 Graphics 类或 Bitmap 让它在绘制的像素之间插入“空白”?在我自己编写复杂的代码来完成之前,我想确保我在某处没有遗漏一些设置。

0 投票
2 回答
1454 浏览

winapi - 使用分层窗口时是否可以将 AnimateWindow 与 AW_BLEND 一起使用?

我正在显示一个使用UpdateLayeredWindow并想添加过渡动画的窗口。AnimateWindow如果我使用滑动或滚动效果(尽管有一些闪烁),则可以使用。但是,当我尝试使用它AW_BLEND来产生淡入淡出效果时,我不仅会在动画后(每像素和整个图像上)失去任何半透明度,而且还会出现默认的窗口边框。有没有办法防止边框出现?

0 投票
2 回答
88 浏览

.net - 图形处理问题

我是否需要在 OnPaint 事件中对通过 PaintEventArgs 获得的 Graphics 对象调用 Dispose()?

0 投票
2 回答
1927 浏览

c++ - CStatic 自定义控件

我正在尝试创建一个自定义控件CStaticvc++遇到一些问题。

我最初只是使用带有样式的CStatic控件。SS_BLACKRECT在我需要在控件上按需显示图像之前,这对这种情况很有用。

我弄清楚了将图像实际绘制到控件上的所有后勤工作,但我似乎无法弄清楚如何在不干扰其他事情的情况下这样做。

基本上,我希望控件在大多数情况下都能正常CStatic使用该SS_BLACKRECT样式。

然后我需要能够调用一个方法,让它在控件上绘制图像。我正在使用绘图并在方法和方法GDI中都尝试过但没有成功。我可以让它在其中绘制,但是当我调用基础时,它会在我的图像上绘制。OnPaint()DrawItem()OnPaint()CStatic::OnPaint()

我需要能够让它像平常一样绘制,然后只是在上面放一个图像。当我尝试在该DrawItem()方法中执行此操作时,我遇到了问题,因为显然它不是使用SS_BLACKRECT样式进行绘制,而是在等待我按预期绘制控件。

我想我想我正在寻找的是三件事之一。GDI在基本OnPaint()方法完成后使用的一种绘制方法。一种让控件绘制默认SS_BLACKRECT样式然后绘制OWNERDRAW图像的方法。或模仿绘图的代码SS_BLACKRECT

最后一个可能是最简单的,但我只是不知道我需要设置的所有东西来绘制CStatic像默认 DrawItem 这样的控件。