图片和压缩包结合的方法 图种制作方法 vbs脚本

247 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

在早些年的网络的论坛里我们经常会看到这样一种现象,就是图片可以另存为到桌面,然后后缀名改成rar竟然就可以解压了。在贴吧或者csdn论坛常会看到,主要是那个时候论坛还不支持上传附件,或者是附件比较敏感,比如有些人用来打包种子。这样和图片结合在一起可以避开审查,而且种子本来就几kb,和图片结合后不影响。

这个原理就是利用cmd的copy命令,将rar数据复制到追加到图片文件后却不影响图片的显示。一般被用于不能上传附件的但可以贴图的论坛。

不过前提是图片不能被压缩等二次处理。

由于手工去处理比较麻烦,本人写了个vbs脚本,直接选择要处理的图片和压缩包文件拖动到该vbs文件上松开即可1秒做好图种文件。vbs代码如下:

'描述:同时选择一个rar和一个图片文件,拖动到此vbs文件上
'作者:sysdzw
'邮箱:171977759@qq.com
'时间:10:10 2014-08-01

On Error Resume Next
'所允许的格式,可手动修改,不过也就下面这几种了
ImgType="jpg,gif,png,bmp"
RarTyp="rar,zip"

img = wscript.Arguments(0)
rar = wscript.Arguments(1)

if rar<>"" and img<>"" then
	if instr(ImgType,right(lcase(rar),3))>0 and _
	   instr(RarTyp,right(lcase(img),3))>0 then
		tmp=img
		img=rar
		rar=tmp
	end if
	img_=right(lcase(img),3)
	rar_=right(lcase(rar),3)
	if instr(ImgType,img_)=0 or instr(RarTyp,rar_)=0 then
		msgbox "图片格式仅限" & ImgType & " 压缩包格式仅限" & RarTyp & " 请仔细检查拖拽的文件类型是否正确!",vbExclamation,"图片和压缩包合体"
		wscript.Quit
	end if
	out = Left(img, InStrRev(img, ".") - 1) & "_out." & right(img,3)
	set wshshell = Wscript.createobject("wscript.shell")
	x=wshshell.Run("cmd /c copy /b /y """ & img & """+""" & rar & """ " & out &"""",0,true)
	if x = 0 then
		msgbox "执行完毕!输出文件:"+out,vbInformation,"图片和压缩包合体"
	else
		msgbox"失败!",vbExclamation,"图片和压缩包合体,然后拖到此脚本上"
	end if
else
	msgbox "请同时选择一个图片文件和一个压缩包文件。",vbInformation,"图片和压缩包合体"
end if

新建个记事本,复制上述代码,然后保存后将后缀名txt改成vbs即可。

不过需要说明的是现在的论坛社区上传图片基本都会做压缩或者加水印处理,因此这种图种方式已经失效,很少有原图可以上传的社区了,不过这种技术还是有用的,因为vbs是依托于windows系统运行的,了解下也是可以的。