- 主题
- 0
- 积分
- 0
- 贝壳
- 0 个
- 注册时间
- 2007-1-18
- 最后登录
- 2007-1-18
|
[原创]perl中GUI程序添加图片的简易方法
[watermark]
我所说的perl写的GUI程序是使用TK模块写的。
例如以下代码
- my $iestr=';R0lGODlhuAEoAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICA';;
复制代码- $mw->Photo(';imageweb';,-data =>$iestr);
复制代码- my $web=$mw->Button(-command=>[\&web],-image => ';imageweb';,-height => 35,-width => 441,-borderwidth=>1)->place(-x=>2,-y=>0);
复制代码 这里我添加了一个按钮,而按钮对应的操作就是sub web访问我的网站,这个不是这里要说的。
在TK编写的程序中添加图片可以用两中方式:一种就是引用外部文件,另外一种就是使用图片文件数据(这里所谓的数据,可以是两种,一种是二进制流,另外就是BASE64格式的)。在使用图片数据时,如果 用二进制,因为二进制中会出现很多的特殊字符,很容易让程序出错。所以,我认为使用BASE64数据是比较合适的。
BASE64数据,大家想到了什么?找转换工具?呵呵,算了吧,那么麻烦。大家还记得那个NIMDA病毒么?他的*.eml传播方式?就是把可执行程序添加到*.eml中,而在EML中,程序就以BASE64格式保存着。
好,我们就创建一个*.eml文件,你别告诉我你不会啊。
然后用记事本打开*.eml,其中有一段是这样的:
------=_NextPart_001_000C_01C62E7E.C7F866A0
Content-Type: text/html;
charset="gb2312"
Content-Transfer-Encoding: base64
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv
L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PWdiMjMxMiI+DQo8TUVUQSBjb250ZW50PSJNU0hUTUwgNi4w
MC4yOTAwLjIxODAiIG5hbWU9R0VORVJBVE9SPg0KPFNUWUxFPjwvU1RZTEU+DQo8L0hFQUQ+DQo8
Qk9EWSBiZ0NvbG9yPSNmZmZmZmY+DQo8RElWPiZuYnNwOzwvRElWPjwvQk9EWT48L0hUTUw+DQo=
------=_NextPart_001_000C_01C62E7E.C7F866A0--
中间那段“天书”就是这个文件的BASE64数据了。
然后把你需要添加的图片向上面的方法一样做了,添加到my $iestr=';...';;那里的冒号中就可以了。
方便吧,只需要用记事本编写代码就可以了。
[/watermark] |
|