【问题标题】:Is it possible to use .png images for WiX bitmaps是否可以将 .png 图像用于 WiX 位图
【发布时间】:2010-09-28 09:42:23
【问题描述】:

我正在使用 2 500K 位图在我的 WiX 对话框上显示图像。

它们显着增加了安装包的大小,更糟糕的是 - 看起来无法将它们打包为 .cab 文件的一部分,因为它们在 WiX 术语中是 <binary>-es。

那么,我想,有没有办法将其他文件格式用于位图或 WiX 与 BMP 绑定?理想情况下,如果有一种使用 .png 格式的方法会更好,因为它带有一个松散的压缩选项。

【问题讨论】:

    标签: image wix png bitmap wix3


    【解决方案1】:

    Bitmap control 的 Windows 安装程序文档指出图像应该是“位图”——可能是 .BMP 文件——或 JPEG。

    在使用 WiX 时,您必须记住它基于 Windows Installer。这意味着 WiX 中的任何限制通常是由底层 Windows Installer 实现中的限制引起的。

    .BMP 文件可以进行 RLE 压缩。我不知道他们是否支持任何其他压缩算法。

    【讨论】:

    • 我曾尝试使用 RLE 压缩的 .BMP-s,但为此我不得不将颜色深度降低到 256,结果(图片质量)远非令人满意。谢谢。
    • @user48829;有趣的是,在文档中,似乎 Bitmap 控件现在支持 win8 上的 .PNG 图像。 :P
    • 我也会远离jpeg 或压缩bmp。阅读my answer了解详情。
    【解决方案2】:

    WiX 工具集不受 BMP 和 JPG 限制。正如您所发现的,您可以将任何其他图像格式放入您的包中。但是,MSI SDK 仅记录 BMP 和 JPG 支持。

    【讨论】:

    • 显然,我不会怀疑你,Rob。也就是说:你能澄清一下吗?我的印象是 MSI 控件是内置控件,而 WiX 无法用它们做很多其他事情。也就是说,OP 并没有专门讨论控件,但是......
    • 罗杰,我只是想将 MSI 与 WiX 分开。 WiX 将允许您在二进制表中存储任何内容,即使 MSI 只会呈现 BMP 和 JPG。为什么要将 PNG 存储在二进制表中?我不知道,但这不是 WiX 的错,它不会在 UI 中呈现。
    • 看起来 Windows 8(.1) 增加了对 PNG 的支持
    【解决方案3】:

    是的,如果您只需要在 Windows 8 或更高版本上安装。来自Bitmap Control

    Windows 8 和 Windows Server 2012: 图像文件可以是任何 Windows 映像组件 (WIC) 支持的标准格式, 包括 TIFF、JPEG、PNG、GIF、BMP 和 HDPhoto。控件不 支持动画。

    【讨论】:

      【解决方案4】:

      正如在其他答案中所述,图像格式限制来自 Microsoft 的 MSI 实施,而不是来自 WiX。虽然.jpeg 似乎从 Windows 7 开始支持,PNG 从 Windows 8 开始支持,但请注意您使用的格式。您需要权衡的是安装程序的外观。

      我的经验表明,确保生成的安装程序正确显示图像的唯一可靠方法是使用未压缩的BMPs。就是这样!是的,我知道他们会膨胀最终文件的大小,但是,嘿,就像微软的其他一切一样,他们已经落后了很多年,没有办法解决。

      因此,如果您不想让安装程序在 Windows XP 或 Vista 上显示灰色方块而不是图形,请不要使用原始 .bmp 格式以外的任何内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 2014-07-27
        • 1970-01-01
        • 2016-03-25
        相关资源
        最近更新 更多