Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

白色背景转透明的VBS小工具

  由于经常要用到透明背景的图,截图下来的却是白色背景的,每次都开PS处理太麻烦,于是用VBS写了个小工具。只要把图片拖上去就可以把白色背景转换成透明的。只不过是用VBS写的,在效率方面问题会比较大。不过VBS比较方便,只要是Windows就能直接使用。
'清除图片白色背景     作者:次碳酸钴
'有问题请提交至 admin@web-tinker.com
If WSH.Arguments.Count=0 Then
  Msgbox "请往上面拖拽图片文件" : WSH.Quit
End If
Dim img,pro,dat,dir
Set img=CreateObject("WIA.ImageFile")
Set pro=CreateObject("WIA.ImageProcess")
'加载图片
img.LoadFile WSH.Arguments(0)
'获取颜色链表
Set dat=img.ARGBData
'遍历像素
For i=1 To dat.Count
  '取色
  color=dat(i)
  '计算颜色分量
  r=(color And &HFF0000)\&H10000
  g=(color And (&HFFFF00FF Imp 0))\&H100
  b=color And &HFF
  '使用亮度来计算透明度
  a=765-r-b-g
  If a>255 Then a=255
  '处理Long类型的符号问题
  If a>127 Then a=a-256
  '写入数据
  dat(i)=a*&H1000000 Or color And &HFFFFFF
Next
'使用透明通道
pro.Filters.Add pro.FilterInfos("ARGB").FilterID
Set pro.Filters(1).Properties("ARGBData")=dat
'计算路径
dir=WSH.ScriptFullName
dir=Left(dir,Len(dir)-Len(WSH.ScriptName))
'生成并数据图片文件
pro.Apply(img).SaveFile dir&"alpha.png"
  其实用Web也可以做,直接Canvas中处理,效率也会比VBS高。不过我觉得这种小工具还是桌面版的好用吧,如果需要高效自己换个语言写个。反正这东西也不难,只要会使用任何一个图形库就能搞定。
网名:
34.203.245.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^