Domanda

sto sviluppando uno script utilizzando VBScript e ho bisogno di convalidare il file di input come-bit 16 BMP.

Al momento il mio script è in questo modo:

Const OverwriteExisting = TRUE

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

Ma come faccio a convalidare il file di input come un 16-bit BMP?



PS: ricordo che ho bisogno di questo per essere compatibile con il mio sito e Windows CE (io sviluppare un programma per esso usando NSBasic)

.
È stato utile?

Soluzione

Non sono sicuro che ho ottenuto a destra (l'inglese è la mia seconda lingua), ma se avete bisogno di controllare se un file è un'immagine BMP a 16 bit (e non verifica i pixel effettivi), si può fare uso di l'immagine di Windows (WIA) oggetti di script. Ecco un esempio:

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

Questo script richiede di avere la wiaaut.dll biblioteca installato e registrato sul computer; se non lo avete, potete scaricarlo come parte della WIA SDK .

Si veda anche WIA documentazione su MSDN.

Altri suggerimenti

Si dovrà leggere i dati del file e confrontarlo con la BMP specifica del formato .

Ci sono tre modi che conosco per lavorare con i file binari in VBScript:

  1. Uso del componente ADODB. Questo metodo è di tipo limitato. Potete trovare un articolo su di esso a VBScript Leggi Binary File .
  2. Si potrebbe scrivere il proprio componente COM e chiamarlo dallo script. Ho fatto un rapido ricerca di Google e trovato alcuni ready-made componenti che offrono questa funzionalità.
  3. Si potrebbe anche installare ImageMagick e usarlo per identificare il BMP. Questo potrebbe essere eccessivo per i vostri scopi però.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top