我有一個vbscript腳本,我需要咀嚼一個.tif文件的目錄。對於每個文件,我需要確定文件是否按比例分配爲橫向或縱向。基本上,我需要能夠獲得每個文件的圖像尺寸。因此,我已經看過一些人閱讀文件文件頭的例子,從jpg或bmp文件中提取這類信息。有沒有人做過同樣的事情來提取tiff文件的尺寸?如何確定tiff文件的圖像尺寸?
回答
在VBScript中,你能確定有兩種方法圖像尺寸:
使用WIA自動化庫(download link,MSDN documentation,an excellent Hey, Scripitng Guy! article on the subject)。一旦你的wiaaut.dll庫中註冊,您可以使用下面簡單的代碼:
Set oImage = CreateObject("WIA.ImageFile") oImage.LoadFile "C:\Images\MyImage.tif" WScript.Echo "Width: " & oImage.Width & vbNewLine & _ "Height: " & oImage.Height
使用
GetDetailsOf
方法來讀取相應的擴展文件屬性。這是一種本地Windows腳本編寫方法,因此不需要外部庫;但代碼更長:Const DIMENSIONS = 31 CONST WIDTH = 162 CONST HEIGTH = 164 Set oShell = CreateObject ("Shell.Application") Set oFolder = oShell.Namespace ("C:\Images") Set oFile = oFolder.ParseName("MyImage.tif") strDimensions = oFolder.GetDetailsOf(oFile, DIMENSIONS) strWidth = oFolder.GetDetailsOf(oFile, WIDTH) strHeigth = oFolder.GetDetailsOf(oFile, HEIGTH) WScript.Echo "Dimensions: " & strDimensions & vbNewLine & _ "Width: " & strWidth & vbNewLine & _ "Height: " & strHeigth
此腳本輸出類似:
尺寸:2464 X 3248
寬度:2464個像素
高度:3248個像素所以如果你需要普通數字,你必須從返回的字符串中提取它們。
此方法還有另一個問題 - 在不同的Windows版本中,屬性索引(腳本開頭的那些常量)不同,正如我在this answer中所解釋的。上述腳本適用於Windows 7,但如果您使用其他Windows版本,或者如果您希望該腳本適用於不同的Windows版本,則需要使用特定於版本的索引。可用屬性索引的最完整列表是here。
Shell方法正是我所期待的。謝謝海倫! – 2011-02-01 23:16:34
我會推薦使用Atalasoft's DotImage Photo其強大的&它是免費的!但是,這是一個.NET包,所以你需要做一些Regasm Magic才能使它工作。在你開始之前去檢查Use vb.net in VBScript。
以下是您需要獲取尺寸的代碼。
Public Function GetHeight(path As String) As Integer
Using stm As New FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)
Dim decoder As New TiffDecoder()
If Not decoder.IsValidFormat(stm) Then
Throw New Exception("not a TIFF")
End If
Dim image As AtalaImage = decoder.Read(stm, Nothing)
Return image.Height
' Return image.Width --- To return the Width.
End Using
End Function
你最好做Dim Info,因爲它將分配更少的內存,因爲ImageInfo = decoder.GetImageInfo(stm,Nothing)。另請注意,TIFF是一種多頁格式,dotImage PhotoFree不支持多頁文檔,但dotImage PhotoPro和dotImage文檔成像可以。 – plinth 2011-02-01 21:24:48
- 1. WIC增加TIFF圖像的尺寸
- 2. 多的Android屏幕尺寸確定圖像尺寸/密度
- 3. 以編程方式確定包中圖像文件的尺寸
- 4. 紅寶石確定圖像尺寸
- 5. 如何確定PDF圖像的x/y尺寸長度和dpi
- 6. PhpStorm如何自動確定圖像的尺寸
- 7. Recaptcha固定圖像尺寸
- 8. 圖像尺寸,
- 9. 圖像尺寸
- 10. 尺寸圖像的尺寸1600 * 1200
- 11. TIFF到JPEG轉換產生更大的圖像尺寸
- 12. 獲取正確的圖像尺寸
- 13. 尺寸圖像以適合WebView尺寸
- 14. 屏幕尺寸到圖像尺寸
- 15. 如何在下載圖像之前確定圖像大小和尺寸
- 16. Tiff圖像未顯示WPF中的實際尺寸圖像控制
- 17. Carrierwave圖像尺寸
- 18. PHP圖像尺寸
- 19. ImageView圖像尺寸
- 20. TTTableItem圖像尺寸
- 21. UIViewcontroller圖像尺寸
- 22. FPDF圖像尺寸
- 23. 如何顯示圖像的全尺寸
- 24. 如何確定圖標在.net,winforms中的圖標的尺寸?
- 25. 確定在畫布上繪製的圖像的尺寸以及鼠標位於圖像上時的尺寸
- 26. WP7如何適應網格尺寸圖像尺寸
- 27. 如何設置UINavigation尺寸以適合背景圖像尺寸?
- 28. 將大圖像文件解碼爲小的固定尺寸
- 29. 確定Dojo Widget的尺寸
- 30. 確定CCLabelTTF的尺寸
你的腳本還需要做什麼?如果它是一個獨立的腳本,那麼你最好將它移植到別的東西上(.NET,Powershell),而不是試圖在VBScript中讀取TIFF文件。曾經有一個名爲ImgSize.dll的免費組件,可以從ServerObjects中執行此操作,但它已經停止並且不再可用。 – 2011-02-01 21:26:22