Pergunta

Estou desenvolvendo um script usando o VBScript e preciso validar o arquivo de entrada como um BMP de 16 bits.

Na época, meu script é assim:

Const OverwriteExisting = TRUE

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

Mas como posso validar o arquivo de entrada como um BMP de 16 bits?



PS: Lembre -se de que preciso que isso seja compatível com meu site e Windows CE (desenvolverei um programa para ele usando o NSBASIC).

Foi útil?

Solução

Não tenho certeza se te acertei (sendo o inglês meu segundo idioma), mas se você precisar verificar se um arquivo é uma imagem BMP de 16 bits (e não verificar os pixels reais), você pode usar a imagem do Windows Aquisição (WIA) Objetos de script. Aqui está um exemplo:

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 exige que você tenha o wiaaut.dll biblioteca instalada e registrada no seu computador; Se você não tiver, pode baixá -lo como parte do Wia Sdk.

Veja também Documentação da WIA no msdn.

Outras dicas

Você teria que ler os dados do arquivo e compará -los com o Especificação de formato BMP.

Há três maneiras que conheço para trabalhar com arquivos binários no VBScript:

  1. Usando o componente Adodb. Este método é meio limitado. Você pode encontrar um artigo sobre isso em VBScript Leia arquivo binário.
  2. Você pode escrever seu próprio componente com e chamá -lo do script. Eu fiz um rápido pesquisa do Google e encontrou alguns componentes prontos que oferecem essa funcionalidade.
  3. Você também pode instalar Imagemagick e use -o para identificar o BMP. Isso pode ser um exagero para seus propósitos.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top