问题标签 [system.drawing.imaging]

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 投票
0 回答
504 浏览

c# - 在 Windows 窗体上创建背景 gif 作为复活节彩蛋

我试图在 Windows 窗体的 .designer.cs 页面中隐藏一些东西。

我希望它从 ui 线程中运行,并更新表单的背景以显示 gif(完全 PG)。

到目前为止,这就是我所能想到的,但肯定有一些根本性的缺陷,因为它不起作用。

提示?

更新!- 我发现如果我最小化和(取消最小化?)图像按预期工作,有点。我想我只需要重新加载页面或其他东西......

0 投票
1 回答
666 浏览

c# - Bitmap​Metadata.SetQuery 不适用于 Tiff 图像

我正在尝试使用 System.​Windows.​Media.​Imaging 将 Exif 数据添加到图像中。我能找到的大多数示例代码都适用于 JPG,但不适用于 Tiff。显然,代码无法扩展标题以添加新的 Exif 字段。下面的代码中缺少的任何想法。输出的 JPG 将在 Exif 中具有“焦距”和“纬度”值。但输出 TIF 不会。

0 投票
1 回答
100 浏览

.net - 使用 ColorMatrix 进行 sRGB 灰度转换

用于灰度转换的 sRGB 因子为 B、G、R = 0.0722、0.7152、0.2126。 https://en.wikipedia.org/wiki/Grayscale

可以在带有 ColorMatrix 的 Format24bppRgb 图像上进行这种灰度转换(如果可以,如何进行)?还是只能按像素来完成?

0 投票
2 回答
631 浏览

c# - 获取 RTF 图像 Html base64 字符串作为 System.Drawing.Image

我在我们的数据库中存储了一个富文本 html 字符串,示例如下(我已经缩短了位信息):

我基本上需要获取这个 HTML 并System.Drawing.Image在 C# 中创建一个,然后将图像保存到 Images 文件夹中的某个位置。对于上面的第一个 png 示例,这一切似乎都适用于以下代码:

但是,当我尝试其他格式(包括 jpg/jpeg)时,似乎没有正确创建图像并且无法读取/打开。

有没有更好、更通用的方法System.Drawing.Image从这个 Html 字符串中获取 C#?或者我只是错过了一些简单的 base64 字符串是如何传递的?

编辑 我迟到了,错过了一些关于代码示例的重要信息,我正在剥离元数据。我现在已经更新了。到填充字符串imageBase64String时,我已经删除了元数据。

0 投票
0 回答
430 浏览

c# - 如何在 C# 中更改 EMF+ 图像的颜色

我正在尝试开发一种特殊的热图,其中标记的颜色取决于一些计算变量的值。

我需要做的是更改现有 EMF+-Image 的颜色。以下代码在使用 png 或 wmf 文件时就像一个魅力,但在使用 EMF+ 文件时 DrawImage 不会绘制任何东西:

例如,使用 ia.SetRemapTable 时也会发生同样的事情。

关于如何解决这个问题的任何想法?

0 投票
1 回答
199 浏览

c# - 使用 C# System.Drawing 生成缩略图时居中裁剪图像

我有一个场景,我使用 System.Drawing 通过将原始图像的大小调整为提供的大小(正在使用的大小)来生成缩略图。如果源图像是矩形,则生成的缩略图需要是方形的,而不会破坏图像(拉伸它)。到目前为止,我有以下代码:

0 投票
1 回答
216 浏览

c++-cli - 设置 System::Drawing::Imaging::PropertyItem^ 的值

我想给我的位图一个 PropertyItem 值,但我不确定如何给它一个 System::String^ 值。

"System::Drawing::Imaging::PropertyItem::Value::set" 不能用给定的参数列表调用。” 参数类型是(System::String^) 对象类型是 System::Drawing::Imaging::属性项^

Hans Passant 的回答是正确的。我已经实现了它,如下所示:

0 投票
0 回答
90 浏览

.net - `Encoder.SaveFlag` 有什么作用?

Encoder.SaveFlagEncoderParameter将位图保存到文件、流等时可以使用的变体之一。

此参数已记录在案,但文档基本上没有说明它的用途,即使在示例中使用它也是如此。

文档:https ://docs.microsoft.com/en-us/dotnet/api/system.drawing.imaging.encoder.saveflag

在示例中,该参数首先在此代码段中使用:

(请注意,评论实际上并没有说明对理解意图有意义的有用 - 它实际上只是重述了代码)。

然后在创建几个新EncoderParameter()对象时使用它,但再次没有实际解释。

谢谢

0 投票
1 回答
29 浏览

c# - 在尺寸减小时防止图像尺寸增大

我有一个函数,它接收图像数据的字节数组,然后调整它的大小,使其高度和/或宽度最大约为 200px。

该函数成功地减小了图像的大小(就尺寸而言),但文件的大小却急剧增加。

示例:调整了最初为 32.2KB、尺寸为 828x251 的图像的大小。输出是一个 374KB 的图像,尺寸为 577x200。

下面是正在使用的函数:

谁能解释为什么文件大小因尺寸减小而急剧增加以及如何防止它(或实际上除了减小文件尺寸外还减小文件大小)?

0 投票
0 回答
32 浏览

.net - 保存图像 (TIFF),首先保存为 BMP - 为什么?

我继承了一些接受 TIFF 文件并将其保存的代码,也是 TIFF 格式,但带有压缩。该代码使用System.Drawing.Imaging命名空间中的类(而不是 say System.Windows.Media)。

我了解获取压缩编码器,设置编码器参数等。但是我对下面的片段感到困惑。将原始图像保存为MemoryStreamBMP 格式,然后从 BMP 格式图像生成输出 TIFF:

生成中间 BMP 格式图像并将其用作输出 TIFF 的基础的原因是什么?

更新:有问题的图像是线条艺术 - 即黑白 - 并且使用的压缩是“CC4”(CCITT Group 4)。
我想如果输入是 BMP 格式,CC4 压缩可能会更有效。但我认为从 TIFF 到 BMP 的中间转换会损失一些效率......