ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 369|回复: 4

[分享] 有关 WIA ImageProcess FilterInfos 的资料分享

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-8-9 22:49 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
有关 WIA ImageProcess FilterInfos的资料分享

1.RotateFlip
================================================
以 90 度增量旋转,以及水平或垂直翻转。

RotationAngle  - 如果希望旋转,可将 RotationAngle 属性设置为 90、180 或 270,
                 否则设置为 0 [默认值]
FlipHorizontal - 如果希望水平翻转图像,可将 FlipHorizontal 属性设置为 True,
                 否则设置为 False [默认值]
FlipVertical   - 如果希望垂直翻转图像,可将 FlipVertical 属性设置为 True,
                 否则设置为 False [默认值]
FrameIndex     - 如果希望修改除 ActiveFrame 之外的帧,
                 可将 FrameIndex 属性设置为帧的索引,
                 否则设置为 0 [默认值]

2.Crop
================================================
以指定的左、右、上、下边距裁剪图像。

Left       - 如果希望沿左侧裁剪,可将 Left 属性设置为左边距(单位为像素),
             否则设置为 0 [默认值]
Top        - 如果希望沿顶部裁剪,可将 Top 属性设置为上边距(单位为像素),
             否则设置为 0 [默认值]
Right      - 如果希望沿右侧裁剪,可将 Right 属性设置为右边距(单位为像素),
             否则设置为 0 [默认值]
Bottom     - 如果希望沿底部裁剪,可将 Bottom 属性设置为下边距(单位为像素),
             否则设置为 0 [默认值]
FrameIndex - 如果希望修改除 ActiveFrame 之外的帧,
             可将 FrameIndex 属性设置为帧的索引,
             否则设置为 0 [默认值]

3.Scale
================================================
将图像缩放到指定的最大宽度和最大高度,
如有必要,保留纵横比。

MaximumWidth        - 将 MaximumWidth 属性设置为希望将图像
                      缩放到的宽度(单位为像素)。
MaximumHeight       - 将 MaximumHeight 属性设置为希望将图像
                      缩放到的高度(单位为像素)。
PreserveAspectRatio - 如果希望保持图像当前的纵横比,
                      可将 PreserveAspectRatio 属性设置为 True [默认值],
                      否则设置为 False,图像将被拉伸到
                      MaximumWidth 和 MaximumHeight
FrameIndex          - 如果希望修改除 ActiveFrame 之外的帧,
                      可将 FrameIndex 属性设置为帧的索引,
                      否则设置为 0 [默认值]

4.Stamp
================================================
在指定的 Left 和 Top 坐标处标记指定的 ImageFile。

ImageFile  - 将 ImageFile 属性设置为希望标记的
             ImageFile 对象
Left       - 将 Left 属性设置为希望将 ImageFile 标记到的从左侧开始的偏移
             (单位为像素)[默认值为 0]
Top        - 将 Top 属性设置为希望将 ImageFile 标记到的从顶部开始的偏移
             (单位为像素)[默认值为 0]
FrameIndex - 如果希望修改除 ActiveFrame 之外的帧,
             可将 FrameIndex 属性设置为帧的索引,
             否则设置为 0 [默认值]

5.Exif
================================================
添加/删除指定的 Exif 属性。

Remove     - 如果希望删除指定的 Exif 属性,可将 Remove 属性设置为 True,
             否则设置为 False [默认值]以添加
             指定的 exif 属性
ID         - 将 ID 属性设置为希望添加或删除的 PropertyID
Type       - 设置 Type 属性以指示希望添加的 Exif 属性的 WiaImagePropertyType
             (对于删除则忽略)
Value      - 将 Value 属性设置为希望添加的 Exif 属性的值
             (对于删除则忽略)
FrameIndex - 如果希望修改除 ActiveFrame 之外的帧,
             可将 FrameIndex 属性设置为帧的索引,
             否则设置为 0 [默认值]

6.Frame
================================================
添加/删除指定的帧。

Remove     - 如果希望删除指定的 FrameIndex,可将 Remove 属性设置为 True,
             否则设置为 False [默认值]以在指定的 FrameIndex 之前
             插入 ImageFile
ImageFile  - 将 ImageFile 属性设置为希望添加其 ActiveFrame 的 ImageFile 对象
             (对于删除则忽略)
FrameIndex - 对于删除,将 FrameIndex 属性设置为希望删除的帧的索引,
             对于添加,将 FrameIndex 设置为要在其之前插入
             ImageFile 的帧的索引,否则设置为 0 [默认值]
             以从指定的 ImageFile 追加帧

7.ARGB
================================================
使用那些指定的图像位更新图像位。

ARGBData -   将 ARGBData 属性设置为表示指定 FrameIndex 的
             ARGB 数据的 Longs 的矢量(宽度和高度
             必须匹配)
FrameIndex - 将 FrameIndex 属性设置为希望修改其 ARGB 数据的帧的索引,
             否则设置为 0 [默认值]以修改
             ActiveFrame

8.Convert
================================================
将得到的 ImageFile 转换为指定的类型。

FormatID    - 将 FormatID 属性设置为所需支持的光栅图像格式,
              当前可选择的格式有 wiaFormatBMP、
              wiaFormatPNG、wiaFormatGIF、wiaFormatJPEG 或 wiaFormatTIFF
Quality     - 对于 JPEG 文件,可将 Quality 属性设置为从 1 到
              100 [默认值]之间的任何值,以指定 JPEG 压缩的质量
Compression - 对于 TIFF 文件,可将 Compression 属性设置为 CCITT3、CCITT4、
              RLE 或 Uncompressed 以指定压缩方案,
              否则可设置为 LZW [默认值]


例程:
  1. Sub test()
  2.     Dim Img As WIA.ImageFile      '定义WIA.Imagefile类型对象
  3.     Dim IP  As WIA.ImageProcess   '定义WIA.ImageProcess类型对象(图片处理对象)

  4.     Set Img = CreateObject("WIA.ImageFile")    '对象实例化
  5.     Set IP = CreateObject("WIA.ImageProcess")

  6.     Img.LoadFile "h:\mypic.png"   '载入图片
  7.     MsgBox "图片大小为" & Img.Width & "*" & Img.Height

  8.     '以下给IP(图片处理对象)的滤镜集合(Filters)添加3种滤镜
  9.     IP.Filters.Add IP.FilterInfos("RotateFlip").FilterID  '旋转翻转滤镜
  10.     IP.Filters(1).Properties("RotationAngle") = 90  '设置1号滤镜的旋转角度(默认0度,或90、180、270度,其它角度不行)

  11.     IP.Filters.Add IP.FilterInfos("Scale").FilterID   '缩放滤镜
  12.     IP.Filters(2).Properties("MaximumWidth") = Img.Width / 2  '设置2号滤镜,宽度缩小2倍
  13.     IP.Filters(2).Properties("MaximumHeight") = Img.Height / 2 '高度缩小2倍

  14.     IP.Filters.Add IP.FilterInfos("Convert").FilterID    '格式转换滤镜
  15.     IP.Filters(3).Properties("FormatID") = wiaFormatGIF   '设置3号滤镜,转换为Gif格式

  16.     Set Img = IP.Apply(Img)   '应用滤镜对图像进行处理,并重新赋值给图片对象

  17.     Img.SaveFile "h:\mypic.gif"  '保存到文件
  18.    
  19.     Set Img = Nothing  '释放资源
  20.     Set IP = Nothing
  21.    
  22. End Sub
复制代码
如果不能正常运行,可能你没有事先引用WIA库。具体步骤如下:


VBA引用WIA图像处理库1.png
VBA引用WIA图像处理库2.png

VBA利用WIA ImageProcess处理图像.zip

12.22 KB, 下载次数: 24

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-8-10 09:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这个需要收藏一下

TA的精华主题

TA的得分主题

发表于 2024-8-11 09:24 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-9-28 20:09 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-11-6 06:14 | 显示全部楼层
opiona 发表于 2024-8-10 09:32
这个需要收藏一下

我看到的是八个方面,信息太多,复制粘贴不过来。
1 、旋转翻转过滤器: 旋转图片
IP.Filters.Add IP.FilterInfos("RotateFlip")
IP.Filters(1).Properties ("RotationAngle")
2 、裁剪滤镜: 裁剪图片
IP.Filters.Add IP.FilterInfos("Crop")
IP.Filters(1).Properties("Left") = Img.Width / 4
IP.Filters(1).Properties("Top") = Img.Width / 4
IP.Filters(1).Properties("Right") = Img.Width / 4
IP.Filters(1).Properties("Bottom") = Img.Width / 4
3 、缩放滤镜: 调整图像的大小
IP.Filters.Add IP.FilterInfos("Scale").FilterID
IP.Filters(1).Properties("MaximumWidth") = 100
IP.Filters(1).Properties("MaximumHeight") = 100
4 、图章过滤器: 一个图片上盖上另一个图章
IP.Filters.Add IP.FilterInfos("Stamp")
Set IP.Filters(1).Properties("ImageFile") = IP
5、EXIF过滤器:写一个新的标题标签图像(文字水印)
Set v = CreateObject("WIA.Vector")
IP.Filters.Add IP.FilterInfos("Exif").FilterID
IP.Filters(1).Properties("ID") = 40091
IP.Filters(1).Properties("Type") = VectorOfBytesImagePropertyType
6 、帧过滤器: 创建一个多页TIFF三种图片

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

8、 图片格式转换: 创建一个压缩的JPEG文件
IP.Filters.Add IP.FilterInfos("Convert").FilterID
IP.Filters(1).Properties("FormatID").Value = wiaFormatJPEG
IP.Filters(1).Properties("Quality").Value = 5
网络一搜一大把。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 21:38 , Processed in 0.039908 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表