绿色风's Blog
专注AutoIT(Au3)
  • 首页
  • 流●年
  • 笔●记
    • 学习随记
    • 源码示例
  • 脚●本
    • UDF(收集)
    • 工作室UDF
    • 工具●教程
    • 教程之GDI
  • 作●品
  • 下●载
  • 情怀ExcelTip
5月42021

WIA对象处理图片缩放裁剪

作者:绿色风   发布:2021-5-4 3:03 Tuesday   分类:学习随记   阅读:3632次   评论:0条  

WIA在处理图像上还是提供了不少简易的方式方法,

秒级速度,以备不时之需。

一、旋转翻转过滤器:旋转图片

Dim Img 'As ImageFile

Dim IP 'As ImageProcess

Set Img = CreateObject("WIA.ImageFile")

Set IP = CreateObject("WIA.ImageProcess")

Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp"

IP.Filters.Add IP.FilterInfos("RotateFlip").FilterID

IP.Filters(1).Properties("RotationAngle") = 90

Set Img = IP.Apply(Img)

Img.SaveFile "C:\WINDOWS\Web\Wallpaper\Bliss90.bmp"

二、裁剪滤镜:裁剪图片

Dim Img 'As ImageFile

Dim IP 'As ImageProcess

Set Img = CreateObject("WIA.ImageFile")

Set IP = CreateObject("WIA.ImageProcess")

Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp"

IP.Filters.Add IP.FilterInfos("Crop").FilterID

IP.Filters(1).Properties("Left") = Img.Width \ 4

IP.Filters(1).Properties("Top") = Img.Height \ 4

IP.Filters(1).Properties("Right") = Img.Width \ 4

IP.Filters(1).Properties("Bottom") = Img.Height \ 4

Set Img = IP.Apply(Img)

Img.SaveFile "C:\WINDOWS\Web\Wallpaper\BlissCrop.bmp"

三、缩放滤镜:调整图像的大小

Dim Img 'As ImageFile

Dim IP 'As ImageProcess

Set Img = CreateObject("WIA.ImageFile")

Set IP = CreateObject("WIA.ImageProcess")

Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp"

IP.Filters.Add IP.FilterInfos("Scale").FilterID

IP.Filters(1).Properties("MaximumWidth") = 100

IP.Filters(1).Properties("MaximumHeight") = 100

Set Img = IP.Apply(Img)

Img.SaveFile "C:\WINDOWS\Web\Wallpaper\BlissThumb.bmp"

四、图章过滤器:一个图片上盖上另一个图章

Dim Thumb 'As ImageFile Dim Img 'As ImageFile

Dim IP 'As ImageProcess

Set Img = CreateObject("WIA.ImageFile")

Set Thumb = CreateObject("WIA.ImageFile")

Set IP = CreateObject("WIA.ImageProcess")

Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp"

Thumb.LoadFile "C:\WINDOWS\Web\Wallpaper\BlissThumb.bmp"

IP.Filters.Add IP.FilterInfos("Stamp").FilterID

Set IP.Filters(1).Properties("ImageFile") = Thumb

IP.Filters(1).Properties("Left") = Img.Width - Thumb.Width

IP.Filters(1).Properties("Top") = Img.Height - Thumb.Height

Set Img = IP.Apply(Img)

Img.SaveFile "C:\WINDOWS\Web\Wallpaper\BlissStamp.bmp"

五、EXIF过滤器:写一个新的标题标签图像(文字水印)

Dim Img 'As ImageFile

Dim IP 'As ImageProcess

Dim v 'As Vector

Set Img = CreateObject("WIA.ImageFile")

Set IP = CreateObject("WIA.ImageProcess")

Set v = CreateObject("WIA.Vector")

Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Autumn.jpg"

IP.Filters.Add IP.FilterInfos("Exif").FilterID

IP.Filters(1).Properties("ID") = 40091

IP.Filters(1).Properties("Type") = VectorOfBytesImagePropertyType

v.SetFromString "This Title tag written by Windows Image Acquisition Library v2.0"

IP.Filters(1).Properties("Value") = v

Set Img = IP.Apply(Img)

Img.SaveFile "C:\WINDOWS\Web\Wallpaper\AutumnExif.jpg"

六、帧过滤器:创建一个多页TIFF三种图片

Dim Img 'As ImageFile

Dim Page2 'As ImageFile

Dim Page3 'As ImageFile

Dim IP 'As ImageProcess

Dim v 'As Vector

Set Img = CreateObject("WIA.ImageFile")

Set Page2 = CreateObject("WIA.ImageFile")

Set Page3 = CreateObject("WIA.ImageFile")

Set IP = CreateObject("WIA.ImageProcess")

Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp"

Page2.LoadFile "C:\WINDOWS\Web\Wallpaper\Azul.jpg"

Page3.LoadFile "C:\WINDOWS\Web\Wallpaper\Autumn.jpg"

IP.Filters.Add IP.FilterInfos("Frame").FilterID

Set IP.Filters(IP.Filters.Count).Properties("ImageFile") = Page2

IP.Filters.Add IP.FilterInfos("Frame").FilterID

Set IP.Filters(IP.Filters.Count).Properties("ImageFile") = Page3

IP.Filters.Add IP.FilterInfos("Convert").FilterID

IP.Filters(IP.Filters.Count).Properties("FormatID") = wiaFormatTIFF

Set Img = IP.Apply(Img)

Img.SaveFile "C:\WINDOWS\Web\Wallpaper\Bliss.tif"

Img.ActiveFrame = Img.FrameCount

Set v = Img.ARGBData

Set Img = v.ImageFile(Img.Width, Img.Height)

Img.SaveFile "C:\WINDOWS\Web\Wallpaper\Autumn.bmp"

七、ARGB过滤器:创建一个修改版本的图片

Dim Img 'As ImageFile

Dim IP 'As ImageProcess

Dim v 'As Vector

Dim i 'As Long

Set Img = CreateObject("WIA.ImageFile")

Set IP = CreateObject("WIA.ImageProcess")

Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp"

Set v = Img.ARGBData

For i = 1 To v.Count Step 21

v(i) = &HFFFF00FF 'opaque pink (A=255,R=255,G=0,B=255)

Next

IP.Filters.Add IP.FilterInfos("ARGB").FilterID

Set IP.Filters(1).Properties("ARGBData") = v

Set Img = IP.Apply(Img)

Img.SaveFile "C:\WINDOWS\Web\Wallpaper\BlissARGB.bmp"

八、从图片格式转换:创建一个压缩的JPEG文件

Dim Img 'As ImageFile

Dim IP 'As ImageProcess

Set Img = CreateObject("WIA.ImageFile")

Set IP = CreateObject("WIA.ImageProcess")

Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp"

IP.Filters.Add IP.FilterInfos("Convert").FilterID

IP.Filters(1).Properties("FormatID").Value = wiaFormatJPEG

IP.Filters(1).Properties("Quality").Value = 5

Set Img = IP.Apply(Img)

Img.SaveFile "C:\WINDOWS\Web\Wallpaper\BlissCompressed.jpg"





https://docs.microsoft.com/zh-cn/previous-versions/windows/desktop/wiaaut





本文固定链接: http://www.jianyiit.com/post-380.html

blogger
该日志由 绿色风 于2021-5-4 3:03 Tuesday发表在 学习随记 分类下。
版权所有:《绿色风's Blog》 → 《WIA对象处理图片缩放裁剪》;
除特别标注,本博客很多文章均为原创. 互联分享,尊重版权,转载请以链接形式标明本文地址;
本文标签:

扫描二维码,在手机上阅读
上一篇::BlockInput函数扩展【阻止来自鼠标和键盘的所有输入,而不会显示UAC警告】
下一篇:mp4视频 视频测试地址(在线MP4文件)

热门文章

相关文章

  • Au3图片转灰度
  • Hex值十六进制字符串逐行转换
  • 系统自动登陆
  • Windows消息代码
  • 获取图片尺寸
取消回复

发表评论

亲,头像对么?

11 + 13 =

提交中,请稍候……


木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!


    站点统计
    • 运行时间: 20254 天
    • 日志总数: 365 篇
    • 评论数量: 7222 条
    • 微语数量: 6 条
    • 附件总量: 388 件
  • 逝出的青春

  • 打赏"绿色风"



      扫码关注本站公众号 可搜本站内容

  • Autoit V3 脚本交流群

      常驻群1:905774875
      常驻群2:40672266


  • 链接

    • AU3中文论坛
    • Excel资料库
    • 完美者博客
    • 顺网小哥'S Blog
    • 猛牛哥的博客
    • 网吧系统下载
  • 分类

    • 流●年(66)
    • 笔●记(0)
    • 脚●本(0)
    • 作品(21)
    • 学习随记(51)
    • 源码示例(68)
    • UDF(收集)(26)
    • 工作室UDF(30)
    • 工具●教程(62)
    • 教程之GDI(24)
Copyright © 2013 绿色风's Blog. Powered by emlog. Theme by 射雕天龙. 鄂ICP备2021011689号-1 鄂公网安备42102302000078号 sitemap