Pregunta

Estoy desarrollando un guión con VBScript y necesito para validar el archivo de entrada como de 16 bits BMP.

En el momento de mi guión es la siguiente:

Const OverwriteExisting = TRUE

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

Pero ¿Cómo puedo validar el archivo de entrada como BMP de 16 bits?



PS:. Recuerde que necesito que esto sea compatible con mi sitio y Windows CE (voy a desarrollar un programa para que el uso de NSBasic)

¿Fue útil?

Solución

No estoy seguro de que llegué a la derecha (Inglés es mi segunda lengua), pero si es necesario comprobar si un archivo es una imagen de 16 bits BMP (y no verifica los píxeles reales), se puede hacer uso de de imágenes de Windows (WIA) objetos de secuencias de comandos. He aquí un ejemplo:

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

Este script requiere que usted tiene la wiaaut.dll biblioteca instalado y registrado en su ordenador; si no lo tiene, puede descargarlo como parte de la WIA SDK .

WIA documentación en MSDN.

Otros consejos

tendría que leer los datos del archivo y compararlo con el BMP especificación de formato .

Hay tres maneras que conozco para el trabajo con los archivos binarios en VBScript:

  1. Utilización del componente ADODB. Este método es un poco limitado. Se puede encontrar un artículo sobre él en VBScript Leer binario archivo .
  2. Se puede escribir su propio componente COM y llamarlo desde el guión. Hice una rápida búsqueda de Google y encontró algunas ya hechas componentes que ofrecen esta funcionalidad.
  3. También podría instalar ImageMagick y lo utilizan para identificar el BMP. Eso podría ser excesiva para sus propósitos sin embargo.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top