如何在TStyleBook中提取和替换PNG图像

时间:2015-01-10 13:34:22

标签: delphi firemonkey delphi-xe7 firemonkey-style

我已经待了一个星期了,我放弃了。如何提取嵌入在TStyleBook

中的PNG图像

我试过了this genuine solution,但结果很奇怪。我的表单在设计和运行时显示的位图是TAniIndicator

的位图

ًRuntime

当我打开MultiResBitmap的{​​{1}}编辑器时,我会看到同一图像的两个缩放版本。

我使用此代码来保存位图:

TImage

我得到了两张这样的图像:

Extracted image

那么,发生了什么?为什么图像会显示一个并保存另一个?如何保存所有图像以便我可以编辑它们?更重要的是,在编辑之后,如何将它们放回我的procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin for i := 0 to Image1.MultiResBitmap.Count - 1 do Image1.MultiResBitmap.Items[i].Bitmap.SaveToFile(IntToStr(i) + '.png'); end;

1 个答案:

答案 0 :(得分:1)

您提到的SO Q& A(link here)中描述的方法适合我。但是,我也可以通过从样式文件中复制过多来创建您看到的错误。某些样式文件包含多个图像,并且由于.style文件中的图像数据长度为几页,因此很容易在一个图像的末尾绘制线条并继续下一个图像。当你复制&粘贴到您的TImage中,您会看到一个图像,然后保存另一个图像。由于这是一个c& p错误,我没有进一步调查显示哪个图像以及保存的原因或原因。

对于实际问题,编辑图像,使用位图样式设计器。打开.vsf文件或选择创建新文件。在File - New的子菜单中有几种选择。加载样式或创建新样式后,左侧树视图中的Images列出所有嵌入的图像。使用中间标题中的Export按钮,您可以将所有图像保存到您选择的目录中。编辑图像后,您可以使用Update按钮,或DeleteAdd按钮。最后保存为.vsf或.style文件。由于一些无法解释的原因,BSD只能打开.vsf文件,但可以同时保存为.vsf和.style。


编辑:根据您的注释,您在样式簿中修改了样式并且不想创建新样式,可以将样式簿中的样式保存到.style文件中。从这个.style文件中,您可以将PNG对象复制到TImage中(在文本模式下查看表单时),然后在运行时将其保存到.png文件中。在图像编辑器中编辑后,将其加载到TImage(在设计时)并将PNG作为资源复制(以表单文本模式)回到.style文件。一种黑客,但如果没有别的......

相关问题