能否在WiX中使用.png图像作为位图?

11

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

它们极大地增加了安装包的大小,更糟糕的是-看起来没有办法将它们作为.cab文件的一部分打包,因为它们在WiX术语中是<binary>

所以,我想知道,是否有其他文件格式可以用于位图,或者WiX是否只能使用BMP格式?理想情况下,如果有一种方法可以使用.png格式,因为它带有无损压缩选项,那将是很好的。

4个回答

14

针对位图控件,Windows Installer文档说明图片应为“位图”——可能是.BMP文件——或JPEG格式。

在使用WiX时,需要记住它基于Windows Installer。这意味着WiX中的任何限制通常是由底层Windows Installer实现的限制所造成的。

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


1
我曾尝试使用RLE压缩的.BMP文件,但为此我必须将颜色深度降低到256,并且结果(图片质量)远不能令人满意。谢谢。 - user48829
@user48829,有趣的是,在文档中,Bitmap控件似乎现在支持win8上的.PNG图像。 :P - Erti-Chris Eelmaa
1
我也会避免使用jpeg或压缩的bmp。请阅读我的回答了解详情。 - ahmd0

8

WiX工具集并不限于BMP和JPG格式。正如您发现的那样,您可以将任何其他图像格式放入软件包中。然而,MSI SDK只记录了BMP和JPG格式的支持。


显然,我不会怀疑你,Rob。话虽如此:你能澄清一下吗?我原本以为MSI控件是内置的,而WiX不能做太多其他事情。话虽如此,OP并没有具体谈论控件,但是... - Roger Lipscombe
3
罗杰,我只是在试图区分MSI和WiX。WiX可以使你将任何东西存储在二进制表中,虽然MSI只能呈现BMP和JPG。为什么要在二进制表中存储PNG呢?我不知道,但这并不是WiX的问题,它不能在用户界面中呈现PNG。<微笑/> - Rob Mensching
1
似乎Windows 8(.1)增加了对PNG的支持。 - Jesan Fafon

4

如果您只需要在Windows 8或更高版本上安装,则可以。来自Bitmap Control:

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


1
正如其他答案所述,图像格式的限制来自于微软对MSI的实现,而不是WiX。虽然从Windows 7开始支持.jpeg,从Windows 8开始支持PNG,但使用的格式一定要非常小心。你需要在安装程序外观和文件大小之间做出权衡。
我的经验表明,确保生成的安装程序正确显示图像的唯一可靠方法是使用未压缩的BMPs。就是这样!是的,我知道它们会使最终文件的大小变得很大,但是,嘿,就像微软的其他事情一样,它们落后了许多,没有其他办法。
因此,如果你不想在Windows XP或Vista上看到灰色方块而不是你的图形,请不要使用除原始.bmp格式以外的任何东西。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接