是否可以使用 WindowsXP 的本机库和脚本功能将图像文件转换为 BMP 格式?
我说的是 WSH、JScript、VBS 等……
如果可以用 Dev-C++ 编译,C++ 也很适合我的需求
是否可以使用 WindowsXP 的本机库和脚本功能将图像文件转换为 BMP 格式?
我说的是 WSH、JScript、VBS 等……
如果可以用 Dev-C++ 编译,C++ 也很适合我的需求
是的你可以。查看作为 GDI+ 一部分的Image类。
要从脚本转换图像,您可以使用WIA 自动化库。它不是严格意义上的“原生”库,但它是可再分发的(请参阅 EULA)。
Blow 是一个 JScript 示例,展示了如何将图像转换为 BMP。原始图像可以是 PNG、GIF、JPEG 或 TIFF。在运行脚本之前,在系统中注册wiaaut.dll库。
var wiaIDUnknown = "{00000000-0000-0000-0000-000000000000}";
var wiaFormatBMP = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}";
// Load the original image
var img = new ActiveXObject("WIA.ImageFile");
img.LoadFile("D:\\MyFolder\\MyImage.gif");
switch (img.FormatID)
{
case wiaIDUnknown:
// Unknown image format or an invalid image file
break;
case wiaFormatBMP:
// The image is already BMP
break;
default:
// Specify the new format
var ip = new ActiveXObject("WIA.ImageProcess");
ip.Filters.Add(ip.FilterInfos("Convert").FilterID);
ip.Filters(1).Properties("FormatID").Value = wiaFormatBMP
// Convert and save the image
img = ip.Apply(img);
img.SaveFile("D:\\MyFolder\\MyImage.bmp");
}
另请参阅MSDN 上的WIA 文档。
我认为 Windows 7 WIA DLL 是随 Windows 一起提供的。否则你可以下载WIA
这是转换为 vbscript 的 @Helen 代码:
Const wiaIDUnknown = "{00000000-0000-0000-0000-000000000000}"
Const wiaFormatBMP = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}"
Sub die(msg)
WScript.Echo(msg)
WScript.Quit(1)
End Sub
'-----------------------------------------------------------------
' MAIN
Set args = WScript.Arguments
If args.Count <> 2 Then die "Usage: WIA_convert.vbs <filename_input> <filename_output>"
filename_in = args.Item(0)
filename_out = args.Item(1)
Set img_in = CreateObject("WIA.ImageFile")
img_in.LoadFile filename_in
Wscript.Echo "Width = " & img_in.Width
Wscript.Echo "Height = " & img_in.Height
Select Case img_in.FormatID
Case wiaIDUnknown
Wscript.Echo "Unknown format"
Case wiaFormatBMP
Wscript.Echo "Image is BMP"
Case Else
Set ip = CreateObject("WIA.ImageProcess")
ip.Filters.Add(ip.FilterInfos("Convert").FilterID)
ip.Filters(1).Properties("FormatID").Value = wiaFormatBMP
Set img_out = ip.Apply(img_in)
img_out.SaveFile(filename_out)
End Select