4

WindowsXPのネイティブライブラリとスクリプト機能を使用して画像ファイルをBMP形式に変換することは可能ですか?

WSH、JScript、VBSなどについて話しています...
C ++は、Dev-C ++でコンパイルできる場合、必要なものにも適しています。

4

3 に答える 3

2

はい、できます。GDI+の一部であるImageクラスを見てください。

于 2010-09-01T20:24:08.083 に答える
1

スクリプトから画像を変換するには、 WIA Automation Libraryを使用できます。これは厳密には「ネイティブ」ライブラリではありませんが、再配布可能です (EULA を参照してください)。

Blow は、画像を BMP に変換する方法を示す JScript の例です。元の画像は、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 ドキュメントも参照してください。

于 2010-09-02T07:26:28.793 に答える
0

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
于 2020-01-29T17:09:28.613 に答える