Вопрос

Я разрабатываю скрипт с использованием 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).

Это было полезно?

Решение

Я не уверен, что правильно вас понял (английский - мой второй язык), но если вам нужно проверить, является ли файл 16-разрядным BMP-изображением (и не проверять фактические пиксели), вы можете воспользоваться объектами сценариев Windows Image Acquisition (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 библиотека, установленная и зарегистрированная на вашем компьютере;если у вас его нет, вы можете загрузить его как часть WIA SDK.

Смотрите также Документация WIA на MSDN.

Другие советы

Вам пришлось бы прочитать данные файла и сравнить их с Спецификация формата BMP.

Я знаю три способа работы с двоичными файлами в VBScript:

  1. Используя компонент ADODB.Этот метод в некотором роде ограничен.Вы можете найти статью об этом по адресу VBScript Читает Двоичный файл.
  2. Вы могли бы написать свой собственный COM-компонент и вызвать его из скрипта.Я сделал быстрый Поиск в Google и нашел несколько готовых компонентов, которые предлагают эту функциональность.
  3. Вы также можете установить Магия изображений и используйте его для идентификации BMP.Однако это может быть излишеством для ваших целей.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top