问题标签 [bitmapencoder]

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 回答
172 浏览

c# - C# image /xmp/projectionType setquery 错误:(添加图像元数据/xmp/projectionType)

我的目标是将值设置为 jpeg 图像的“/xmp/projectionType ”元数据。

我可以通过以下代码设置“ text/descryption ”,但是当我尝试为“/xmp/ProjectionType ”设置值时会抛出错误

错误:

PresentationCore.dll 中出现“System.ArgumentException”类型的未处理异常

附加信息:值不在预期范围内。

如何插入“/xmp/projectionType ”?

0 投票
0 回答
436 浏览

c# - 编码为 Rgba16 UWP 时分配的缓冲区不足

我正在使用以下代码对包含 Textblocks 作为子项的 Canvas 控件进行编码,但我得到了

我的代码

我知道这是byte[] pixels缓冲区不够大,因为我想编码为BitmapPixelFormat.Rgba16. BitmapPixelFormat.Rgba8编码为或时我没有遇到错误BitmapPixelFormat.Bgra8

我尝试使用以下方法计算缓冲区,但它只产生空的白色位图。

我想使用BitmapPixelFormat.Rgba16,因为我想提高图像质量。如何正确执行此操作?谢谢。

0 投票
1 回答
171 浏览

c# - BitmapImage 到 Bitmap 抛出异常

我将我在 StackOverflow 上找到的函数用于项目:https
://stackoverflow.com/a/6484754/9535211 此函数的目标是将 System.Windows.Media.Imaging.BitmapImage 转换为 System.Drawing。位图。

它工作得很好(即使它真的很重),但它每次调用它都会抛出一个异常: 异常抛出:PresentationCore.dll 中的'System.NotSupportedException'
它似乎来自以下行:

enc.Save(outStream);

有没有办法让它消失?
谢谢你的帮助 !

0 投票
1 回答
207 浏览

c# - BitmapEncoder FlushAsync 引发参数异常 - c#

当我使用下面的代码进行图像处理时,它会在 FlushAsync() 处引发异常。奇怪的是,此问题仅发生在某些视频文件中。你能帮忙解释一下为什么会这样吗?

0 投票
0 回答
93 浏览

c# - 如何检测 BitmapEncoder 保存方法是否完成

我有:

我需要检测encoder.Save()完成,所以我可以调用另一个需要我的Jpg 文件的方法

0 投票
1 回答
176 浏览

.net - 无法创建更多调度程序。资源耗尽?

在我们的应用程序中,我们使用 PngBitmapEncoder 在单独的线程\任务中编码和保存 PNG 图像。运行应用程序几天后,我们看到 Dispatcher 无法从编码器创建并抛出错误

没有足够的存储空间来处理命令

并具有以下调用堆栈

由于 .Net 是开源的,所以很好奇 Dispatcher 构造函数中的哪一行抛出了错误

更新

更新了 .net 开源的构造函数代码。dispatcher.cs 可在此处获得https://referencesource.microsoft.com/#WindowsBase/Base/System/Windows/Threading/Dispatcher.cs,078d6b27d9837a35

经过一番调查,我们发现问题发生在大约 15000 次迭代后(每次迭代都会创建一个新线程并调用 PngBitmapEncoder)。然后发现这与 Global Atom Table 限制(0x4000 或 16384)有关。此处有关全局原子表的更多详细信息https://docs.microsoft.com/en-us/archive/blogs/ntdebugging/identifying-global-atom-table-leaks

每次创建的调度程序都会在全局原子表中创建一个条目,并且在线程退出时,该条目不会被清除。这会导致全局原子表中的泄漏,当它达到最大限制时,它会抛出“存储空间不足......”错误。这似乎是 Microsoft 处理 Dispatcher 的问题。即使是 PngBitmapEncoder 文档,我也没有看到任何关于 Dispatcher 处理和任何显式关闭 Dispatcher 的评论。

0 投票
0 回答
45 浏览

wpf - 无法在位图中捕获 WPF 实时图表

我正在尝试编写一个函数,它将测试结果(具有文本输出和图表输出,分别存储在文本框和实时图表中)写入 pdf 文件。文本输出没有问题,但我无法保存图表,除非我从其父堆栈面板中提取每个图表(每个测试都有一个堆栈面板,在选择测试时显示)然后显示图表在单独的窗口中。有问题的行周围有很多代码,所以我将在下面粘贴一个缩短的版本。

问题似乎是调用“_saveWindow.Show()”而不是“.ShowDialog”。我需要在没有用户输入的情况下打开和关闭它,但是“Show()”根本不会在窗口中绘制图表。

任何想法为什么会发生这种情况?

0 投票
1 回答
68 浏览

c# - JPEGEncoder Windows Media Imaging 不支持图像的颜色配置文件

我有以下图像(已放置图像的屏幕抓图,因为它的大小超过 2 MB - 可以从https://drive.google.com/file/d/1rC2QQBzMhZ8AG5Lp5PyrpkOxwlyP9QaE/view?usp=下载原始图像分享

在此处输入图像描述

我正在使用BitmapDecoder类读取图像并使用 JPEG 编码器保存它。这会导致以下图像颜色变淡并褪色。

在此处输入图像描述

图像使用PhotoShop RGB配色方案。我尝试使用以下代码设置颜色配置文件,但这会导致此错误The designated BitmapEncoder does not support ColorContexts

更新:克隆图像似乎可以解决问题。但是当我使用以下代码调整图像大小进行转换时,不会保留颜色配置文件