1

我已经坚持了一个星期了,我放弃了。你如何提取嵌入在一个中的PNG图像TStyleBook

我尝试了这个真正的解决方案,但得到了一个奇怪的结果。在设计和运行时以我的表单显示的位图是TAniIndicator

运行

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

我使用此代码保存位图:

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;

我得到了两个缩放的图像:

提取的图像

所以发生了什么事?为什么图像显示一件事并保存另一件事?以及如何保存所有图像以便进行编辑?更重要的是,编辑后,我怎样才能将它们放回我的TStyleBook?

4

1 回答 1

1

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

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


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

于 2015-01-11T20:05:47.333 回答