3

VBScriptを使用してスクリプトを開発していますが、入力ファイルを16ビットBMPとして検証する必要があります。

当時の私のスクリプトは次のようなものです。

Const OverwriteExisting = TRUE

Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:\16bmp.bmp" , "D:\test.bmp", OverwriteExisting

しかし、入力ファイルを16ビットBMPとして検証するにはどうすればよいですか?



PS:自分のサイトとWindows CEとの互換性を保つためにこれが必要であることを忘れないでください(NSBasicを使用してプログラムを開発します)。

4

2 に答える 2

2

正しいかどうかはわかりませんが(英語が私の第二言語です)、ファイルが16ビットBMPイメージであるかどうかを確認する必要がある場合(実際のピクセルを確認しない場合)、Windowsイメージを利用できます。取得(WIA)スクリプトオブジェクト。次に例を示します。

Const wiaIDUnknown = "{00000000-0000-0000-0000-000000000000}"
Const wiaFormatBMP = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}"

Set oImg = CreateObject("Wia.ImageFile")

On Error Resume Next

oImg.LoadFile("C:\image.bmp")

If oImg.FormatID = wiaIDUnknown Then
  ' The file isn't an image file
Else
  Log.Message "Is BMP: " & (oImg.FormatID = wiaFormatBMP)
  Log.Message "Color depth: " & oImg.PixelDepth
End If

このスクリプトでは、wiaaut.dllライブラリがインストールされ、コンピューターに登録されている必要があります。お持ちでない場合は、WIASDKの一部としてダウンロードできます。

MSDNのWIAドキュメントも参照してください。

于 2010-02-28T17:39:49.597 に答える
1

ファイルデータを読み取り、 BMP形式の仕様と比較する必要があります。

VBScriptでバイナリファイルを操作する方法は3つあります。

  1. ADODBコンポーネントを使用します。この方法には制限があります。これに関する記事は、VBScript ReadBinaryFileにあります
  2. 独自のCOMコンポーネントを作成し、スクリプトから呼び出すことができます。Googleで簡単に検索したところ、この機能を提供する既製のコンポーネントがいくつか見つかりました。
  3. ImageMagickをインストールし、それを使用してBMPを識別することもできます。しかし、それはあなたの目的にはやり過ぎかもしれません。
于 2010-02-28T15:23:36.847 に答える