问题标签 [wic]
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.
c# - 如何将 WicImagingBitmap 转换为 Gdi+ 位图或流?
我是一名 .net 开发人员,我正在使用 WindowsAPICodePackage WIC 来渲染图像。我想使用自己的方法“SaveToFile”将 WIC ImagingBitmap 转换为 gdi+ 位图或 MemoryStream。有办法吗?这是我的代码,请帮助:
谢谢,
windows - WindowsImagingComponent 或 System.Windows.Media.Imaging
我需要在托管代码中处理一些位图并将它们保存为 PNG 文件。我应该使用Microsoft.WindowsAPICodePack.DirectX.WindowsImagingComponent
,还是System.Windows.Media.Imaging
?它们看起来都非常相似,我不确定为什么我会选择其中一个。任何人都可以比较和对比它们吗?
gdi+ - 用 PInvoked GDI 和透明 PNG 替换 GDI+ DrawImage
我在 C# 中创建了一个图像服务,它采用基础层图像 (JPG),再一层透明 PNG(32 位),然后输出最终的 JPG 图像。我试图从这个函数中挤出每一毫秒,我的代码在 GDI+ 中的 DrawImage 调用中遇到瓶颈。这里的托管代码:
现在,我阅读了通过 P/Invoke 直接调用 GDI 获得的性能提升,并尝试替换 DrawImage 调用。我创建了一个单元测试来尝试复制加载 JPG 然后在其上分层一个透明 PNG 的相同功能。
参考:http ://social.msdn.microsoft.com/Forums/en-US/winforms/thread/29582142-0068-40dd-bd99-4b3883a76350
但这无法产生分层图像。只是没有基本 JPG 的 PNG。我应该做些什么不同的事情?当谈到直接的 GDI 时,我有点出类拔萃。
windows - Windows 照片查看器中的动画 GIF 支持?
我一直在做一些研究,以找出为什么 Windows 7 不支持原生的照片查看器中的动画 GIF 图像。
人们建议使用各种第三方软件(AKA 不是内置的 Windows 照片查看器)来解决这个缺点。但由于照片查看器使用 WIC(Windows 成像组件)来解码图像,因此该系统可用于添加对几乎任何格式的支持。我猜这意味着我可以制作一个替换 GIF 编解码器来替换内置的编解码器,但在我这样做之前我需要知道一些事情。
那么,我要问的是,照片查看器不支持动画 gif 的原因是因为 WIC 只支持静止图像吗?还是 WPV 不支持动画格式的编码,但 WIC 编解码器可以支持它们?如果是这些原因之一,我想我没有理由开始这个项目(为动画 GIF 创建 WIC 编解码器)。
...或者微软真的没有自己添加支持吗?
PS:一个名为 FastPictureViewer 的程序支持照片查看器中的动画 GIF,但您只能“查看动画 GIF 中的单个帧”。关于此平台 (WIC) 的局限性或 WPV 的局限性的线索?
alphablending - IWICFormatConverter:从支持透明度的格式转换
我正在寻找一种方法来指定使用 Windows 图像处理组件从支持透明度的像素格式转换为不支持透明度的像素格式时使用的背景(哑光)颜色。
这似乎是一个基本要求,我错过了什么?
相关 MSDN 主题:
interop - WICBitmapSource.CopyPixels 到 GDI 位图 Scan0
我修改了 C# IWICBitmapSource.CopyPixels 接口以允许数组编组和传递指针:
我这样称呼它
代码执行没有错误,所有宽度、高度、步幅和缓冲区大小值都是正确的,但位图仍然是黑色的,就好像 WIC 从未接触过它一样。
任何想法为什么会发生这种情况?.NET 编组有问题吗?
com - 调用 IWICComponentFactory.CreateBitmapFromMemory 时出现 WINCODEC_ERR_WIN32ERROR 0x88982F94
调用 IWICComponentFactory.CreateBitmapFromMemory 并将指针传递给 32bppArgb GDI+ 位图的 Scan0 时出现以下错误
IWICComponentFactory 接口声明:
完整代码:
宽度、高度、缓冲区大小、格式 GUID 和扫描大小似乎都是正确的。我无法弄清楚为什么会发生这种情况(错误代码或消息没有谷歌搜索结果
png - 使用 WIC 将法线贴图保存为 16 位纹理
我有一个艺术管道,其中包括以下步骤:
生成法线贴图。我只想将 X 和 Y 分量保存为无符号字节。Z 被省略,因为它是在像素着色器中重建的。
法线贴图被保存到中间图像文件中,然后将其馈送到 nvtt 以将其压缩为 BC5。
要保存法线贴图,我需要使用 Windows 成像组件。我应该使用哪种格式来存储中间图像?
具有任何可用 16bpp 格式的 .png 都会失败(GUID_WICPixelFormat16bppBGR565、555、5551、Gray、GrayFixedPoint、GrayHalf)。
.bmp 成功,例如 GUID_WICPixelFormat16bppBGR565 但 nvtt 无法加载它。
到目前为止,我看到的法线贴图通常是带有红色阴影的蓝色。那些是 24bpp 图像还是 16bpp 图像?那么哪个组件被删除(G?)以及它们以什么格式传递给 nvtt?
因为以某种方式编写仅具有 2 个颜色通道的图像,就好像它具有 3 个颜色通道作为 BGR565(或仅灰色,如果使用 16bppGray)在某种程度上是没有意义的。BC5 是无损的,不应该把图像弄乱,但是中间文件对于以后的任何手动编辑都是无用的。
c++ - 如何使用 C++ 从 Windows 映像组件 (WIC) 获取错误消息?
我一直在用 C++ 中的 Windows 映像组件 (WIC) 进行试验,虽然一切正常,但我希望能够在 WIC 无法加载或转换图像时显示描述性错误消息。
MSDN 记录了各种错误代码,但无法获取错误消息。解决方案可能是 LoadLibrary(...) 的组合以获取 hModule,然后是 FormatMessage(FORMAT_MESSAGE_FROM_HMODULE, ...)。我还没有找到要加载的正确 DLL。
任何帮助深表感谢。
.net - 在 XP 中安装 .Net 4 之前的 VS 2010 BootStrapper for WIC(Windows 映像组件)
我已经在 VS 2010 中为我的 .Net 4 应用程序创建了一个设置和部署项目。在我的先决条件中,我已经检查了 .Net4 的先决条件,但我了解到 .Net4 省略了 WIC(Windows 映像组件)以使其轻松。
当我在 Vista/Win7 中运行我的设置时,Net4 安装不会为 WIC 提供错误,但是当我在 XP 中安装它时,它会为 WIC 提供错误。然后我必须先手动安装 WIC,然后运行我的设置。
我需要一个 WIC 引导程序,它在 XP 中安装 .Net4 之前运行。请建议如何完成或提供链接。提前致谢。