设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

tag 标签: WIA的用法

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

分享 VB、VBA、VBS简易的图像处理 Windows Image Acquisition (WIA) 的用法
热度 1 ganlinlao 2015-2-13 23:18
WIA在处理图像上还是提供了不少简易的方式方法,先记在这里,以备不时之需。 一、 旋转 翻转 过滤器: 旋转图片 DimImg'AsImageFile DimIP'AsImageProcess SetImg=CreateObject( "WIA.ImageFile" ) SetIP=CreateObject( "WIA.ImageProcess" ) Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp" IP.Filters.AddIP.FilterInfos( "RotateFlip" ).FilterID IP.Filters( 1 ).Properties( "RotationAngle" )= 90 SetImg=IP.Apply(Img) Img.SaveFile "C:\WINDOWS\Web\Wallpaper\Bliss90.bmp" 二、 裁剪 滤镜: 裁剪 图片 DimImg'AsImageFile DimIP'AsImageProcess SetImg=CreateObject( "WIA.ImageFile" ) SetIP=CreateObject( "WIA.ImageProcess" ) Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp" IP.Filters.AddIP.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 SetImg=IP.Apply(Img) Img.SaveFile "C:\WINDOWS\Web\Wallpaper\BlissCrop.bmp" 三、缩放滤镜 : 调整图像的大小 DimImg'AsImageFile DimIP'AsImageProcess SetImg=CreateObject( "WIA.ImageFile" ) SetIP=CreateObject( "WIA.ImageProcess" ) Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp" IP.Filters.AddIP.FilterInfos( "Scale" ).FilterID IP.Filters( 1 ).Properties( "MaximumWidth" )= 100 IP.Filters( 1 ).Properties( "MaximumHeight" )= 100 SetImg=IP.Apply(Img) Img.SaveFile "C:\WINDOWS\Web\Wallpaper\BlissThumb.bmp" 四、 图章 过滤器: 一个 图片上盖上另 一个 图章 DimThumb'AsImageFileDimImg'AsImageFile DimIP'AsImageProcess SetImg=CreateObject( "WIA.ImageFile" ) SetThumb=CreateObject( "WIA.ImageFile" ) SetIP=CreateObject( "WIA.ImageProcess" ) Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp" Thumb.LoadFile "C:\WINDOWS\Web\Wallpaper\BlissThumb.bmp" IP.Filters.AddIP.FilterInfos( "Stamp" ).FilterID SetIP.Filters( 1 ).Properties( "ImageFile" )=Thumb IP.Filters( 1 ).Properties( "Left" )=Img.Width-Thumb.Width IP.Filters( 1 ).Properties( "Top" )=Img.Height-Thumb.Height SetImg=IP.Apply(Img) Img.SaveFile "C:\WINDOWS\Web\Wallpaper\BlissStamp.bmp" 五、EXIF 过滤器: 写 一个新的标题 标签 图像(文字水印) DimImg'AsImageFile DimIP'AsImageProcess Dimv'AsVector SetImg=CreateObject( "WIA.ImageFile" ) SetIP=CreateObject( "WIA.ImageProcess" ) Setv=CreateObject( "WIA.Vector" ) Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Autumn.jpg" IP.Filters.AddIP.FilterInfos( "Exif" ).FilterID IP.Filters( 1 ).Properties( "ID" )= 40091 IP.Filters( 1 ).Properties( "Type" )=VectorOfBytesImagePropertyType v.SetFromString "ThisTitletagwrittenbyWindowsImageAcquisitionLibraryv2.0" IP.Filters( 1 ).Properties( "Value" )=v SetImg=IP.Apply(Img) Img.SaveFile "C:\WINDOWS\Web\Wallpaper\AutumnExif.jpg" 六、帧过滤器 : 创建一个 多页TIFF 三种 图片 DimImg'AsImageFile DimPage2'AsImageFile DimPage3'AsImageFile DimIP'AsImageProcess Dimv'AsVector SetImg=CreateObject( "WIA.ImageFile" ) SetPage2=CreateObject( "WIA.ImageFile" ) SetPage3=CreateObject( "WIA.ImageFile" ) SetIP=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.AddIP.FilterInfos( "Frame" ).FilterID SetIP.Filters(IP.Filters.Count).Properties( "ImageFile" )=Page2 IP.Filters.AddIP.FilterInfos( "Frame" ).FilterID SetIP.Filters(IP.Filters.Count).Properties( "ImageFile" )=Page3 IP.Filters.AddIP.FilterInfos( "Convert" ).FilterID IP.Filters(IP.Filters.Count).Properties( "FormatID" )=wiaFormatTIFF SetImg=IP.Apply(Img) Img.SaveFile "C:\WINDOWS\Web\Wallpaper\Bliss.tif" Img.ActiveFrame=Img.FrameCount Setv=Img.ARGBData SetImg=v.ImageFile(Img.Width,Img.Height) Img.SaveFile "C:\WINDOWS\Web\Wallpaper\Autumn.bmp" 七、ARGB 过滤器: 创建一个 修改版本 的 图片 DimImg'AsImageFile DimIP'AsImageProcess Dimv'AsVector Dimi'AsLong SetImg=CreateObject( "WIA.ImageFile" ) SetIP=CreateObject( "WIA.ImageProcess" ) Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp" Setv=Img.ARGBData Fori= 1 Tov.CountStep 21 v(i)=HFFFF00FF'opaquepink(A= 255 ,R= 255 ,G= 0 ,B= 255 ) Next IP.Filters.AddIP.FilterInfos( "ARGB" ).FilterID SetIP.Filters( 1 ).Properties( "ARGBData" )=v SetImg=IP.Apply(Img) Img.SaveFile "C:\WINDOWS\Web\Wallpaper\BlissARGB.bmp" 八、从图片格式 转换 : 创建一个压缩的 JPEG 文件 '没有添加引用Microsoft Windows Image Acquisition Library v2.0的话 Const wiaFormatBMP = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}" Const wiaFormatPNG = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}" Const wiaFormatGIF = "{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}" Const wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}" Const wiaFormatTIFF = "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}" DimImg'AsImageFile DimIP'AsImageProcess SetImg=CreateObject( "WIA.ImageFile" ) SetIP=CreateObject( "WIA.ImageProcess" ) Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp" IP.Filters.AddIP.FilterInfos( "Convert" ).FilterID IP.Filters( 1 ).Properties( "FormatID" ).Value=wiaFormatJPEG IP.Filters( 1 ).Properties( "Quality" ).Value= 5 SetImg=IP.Apply(Img) Img.SaveFile "C:\WINDOWS\Web\Wallpaper\BlissCompressed.jpg"
个人分类: vb入门|6571 次阅读|1 个评论

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-4-28 08:10 , Processed in 0.071900 second(s), 13 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部