使用PowerGUI将ps1转换为exe时包含图片

时间:2015-09-04 12:09:18

标签: image powershell exe picturebox powergui

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

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

1 个答案:

答案 0 :(得分: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千字节的图片。你可以用更大的一个来做,但这需要很长时间来处理。