Inno setup Inno设置-如何显示透明PNG图像?
我想在欢迎页面上展示它Inno setup Inno设置-如何显示透明PNG图像?,inno-setup,Inno Setup,我想在欢迎页面上展示它 这是怎么可能的?根据发布在的新闻组,PNG在安装表单上不受支持,在欢迎页面上也不受支持 但是,如果您的目的主要是显示部分透明的图像,则有一种解决方法: TBitmapImage类的ReplaceColor和ReplaceWithColor属性允许动态地将图像中的一种颜色替换为另一种颜色。诀窍是用wizzard的背景色替换“虚拟”颜色(如洋红): 将png转换为bmp(这将删除alpha通道) 将图像中应为透明的部分替换为图像其余部分中不会出现的颜色(例如洋红:#FF0
这是怎么可能的?根据发布在的新闻组,PNG在安装表单上不受支持,在欢迎页面上也不受支持 但是,如果您的目的主要是显示部分透明的图像,则有一种解决方法:
TBitmapImage
类的ReplaceColor
和ReplaceWithColor
属性允许动态地将图像中的一种颜色替换为另一种颜色。诀窍是用wizzard的背景色替换“虚拟”颜色(如洋红):
- 将png转换为bmp(这将删除alpha通道)
- 将图像中应为透明的部分替换为图像其余部分中不会出现的颜色(例如洋红:
)#FF00FF
- 将图像包括在您的ISS中:
[Files] Source: "my\transparent\image.bmp"; DestDir: "{tmp}"; Flags: dontcopy
- 将图像添加到wizzard页面:
[Code] procedure InitializeWizard; var ImageFile: String; Image: TBitmapImage; begin ImageFile := ExpandConstant('{tmp}\image.bmp'); ExtractTemporaryFile('image.bmp'); Image := TBitmapImage.Create(WizardForm); with Image do begin Bitmap.LoadFromFile(ImageFile); Parent := WizardForm.WelcomePage; Left := 10; Top := 10; Width := 30; Height := 30; ReplaceColor := $00FF00FF; // Replace magenta... ReplaceWithColor := WizardForm.WelcomePage.Color; // ...with the background color of the page end; end;
[Setup]
部分指令现在支持带有alpha通道的32位位图文件。使用新的向导ImageAlphaFormat
[Setup]
部分指令指定位图文件的红色、绿色和蓝色通道值是否与alpha通道值预乘。由via提供
及
Pascal脚本更改:Class
TBitmapImage
现在支持带有alpha通道的32位位图文件。在加载位图文件之前,请确保设置Bitmap.AlphaFormat
属性
正确,仅支持位图文件。不再支持有效答案。看。