3

我使用 PowerGUI 编辑器将 ps1 文件转换为 exe 文件。原因是我不希望人们看到我的源代码。该脚本包含一个自己的带有图片的小 GUI。我的问题是,将脚本转换为 exe 文件后,图片仅在特定路径上存在时才会显示。如果我从该路径删除或移动图片,则在启动 exe 时不会显示。

如何将图片包含到 exe 中?我想最后只有一个文件...

4

1 回答 1

1

您可以做到这一点的一种方法是将您的图像转换为Base 64 String,使用以下内容:

[convert]::ToBase64String((get-content C:\YourPicture.jpg -encoding byte)) > C:\YourString.txt

使用文本文件“C:\YourString.txt”中生成的字符串,您可以将其复制并粘贴到代码中,然后将其加载到表单上的图片对象中,如下所示:

$logo.Image = [System.Convert]::FromBase64String('
iVBORw0KGgoAAAANSUhEUgAAAfQAAACMCAYAAACK0FuSAAAABGdBTUEAALGPC/xhBQAAAAlwSFlz
AAAXEQAAFxEByibzPwAAAAd0SU1FB98DFA8VLc5RQx4AANRpSURBVHhe7J0FmBTX0oZ7F1jc3d3d
nU+dOtXw4MGDZfft25fmyJEjPu+//76Xqzke8pCHPOQhD3lIQGxxcGSapvHdd9+FF3hHEdjGFHgn
          .......      Many more lines of string   .......
OqelFQzDMAzD/CZoztADbUwhUm0JERoXCNfEQYhyPAQryiBIUQSBiiTwl1sb3skwDMMwzG+KWLVe
jTEBH6U7JvJ0CJQXoaGPQMWBm5W+Va27k14MwzDMfwCA/wfUstOLO+nBIAAAAABJRU5Jggg==')

这样做意味着您的图像已经存储在代码中,不需要从某个地方加载。

注意:确保磁盘上的图片大小是可以得到的最小的,因为生成字符串可能需要一些时间,并且可能会产生数千行长。所以我建议您只使用大小小于 75 KB 的图片。你可以用更大的来做,但这需要很长时间来处理。

于 2015-09-04T14:05:40.327 回答