WIA requires
XPSP1 or higher.
http://msdn.microsoft.com/en-us/library/ms630827.aspx
In this script, I'll convert a
BMP/JPG/PNG/GIF/TIF image file into a different format image file, as an alternative to GDI+ solution
Convert() in the script
ScreenCapture.
But can use for other purposes too. For example:
http://msdn.microsoft.com/en-us/library/ms630819.aspx
NEED:
COM Standard Library.
Code:
; Allowed extensions for sFileTo: BMP/JPG/PNG/GIF/TIF
sFileFr := A_ScriptDir . "\screen.jpg"
sFileTo := A_ScriptDir . "\screen.bmp"
;nQuality:= 95 ; for JPG only
FormatBMP := "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}"
FormatJPG := "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"
FormatPNG := "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}"
FormatGIF := "{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}"
FormatTIF := "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}"
WIA_Convert(sFileFr, sFileTo, nQuality)
Return
WIA_Convert(sFileFr, sFileTo, nQuality = "")
{
SplitPath, sFileTo,,, sExtTo
COM_Init()
IMG := COM_CreateObject("WIA.ImageFile")
IP := COM_CreateObject("WIA.ImageProcess")
COM_Invoke(IP,"Filters.Add",COM_Invoke(IP,"FilterInfos['Convert'].FilterID"))
COM_Invoke(IP,"Filters[1].Properties['FormatID'].Value",Format%sExtTo%), sExtTo!="JPG"||nQuality=="" ? "":COM_Invoke(IP,"Filters[1].Properties['Quality'].Value",nQuality)
COM_Invoke(IMG,"LoadFile",sFileFr)
IMG := (COM_Invoke(IP,"Apply","+" IMG),COM_Release(IMG))
COM_Invoke(IMG,"SaveFile",sFileTo)
COM_Release(IMG)
COM_Release(IP)
COM_Term()
}