我使用 PowerGUI 编辑器将 ps1 文件转换为 exe 文件。原因是我不希望人们看到我的源代码。该脚本包含一个自己的带有图片的小 GUI。我的问题是,将脚本转换为 exe 文件后,图片仅在特定路径上存在时才会显示。如果我从该路径删除或移动图片,则在启动 exe 时不会显示。
如何将图片包含到 exe 中?我想最后只有一个文件...
我使用 PowerGUI 编辑器将 ps1 文件转换为 exe 文件。原因是我不希望人们看到我的源代码。该脚本包含一个自己的带有图片的小 GUI。我的问题是,将脚本转换为 exe 文件后,图片仅在特定路径上存在时才会显示。如果我从该路径删除或移动图片,则在启动 exe 时不会显示。
如何将图片包含到 exe 中?我想最后只有一个文件...
您可以做到这一点的一种方法是将您的图像转换为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 的图片。你可以用更大的来做,但这需要很长时间来处理。