Share via


嗨,Scripting Guy!

嗨,Scripting Guy!

歡迎使用 TechNet 專欄,Microsoft Scripting Guys 會在此為您解答有關系統管理指令碼的常見問題。您有關於系統管理指令碼方面的問題嗎?請將電子郵件傳送到 scripter@microsoft.com。我們無法保證能夠逐一回答每個問題,不過我們會盡力而為。

還有,別忘了瞧瞧全新經過改良的嗨,Scripting Guy!過往文件

今天的問題:如何不使用 Windows Media Player 判斷圖片檔案的高度與寬度?


如何不使用 Windows Media Player 判斷圖片檔案的高度與寬度?

嗨,Scripting Guy!前一陣子您曾介紹過如何判斷圖片檔案的高度與寬度。但是,那個方法是把所有的圖形檔案匯入 Windows Media Player。難道沒有別的方法可以取得同樣的資訊,又不需要使用 Windows Media Player?

-- RP

RP,您好。您瞧,這就是 Scripting Guy 耍小聰明的後果。隨著數位攝影的普及,指令撰寫人員也想用指令碼取得圖片檔案的高度與寬度。不過很可惜,目前沒有方法用指令碼 (至少沒法內建到作業系統) 蒐集這個資訊。而這就是問題所在,所以我們準備了一個挺巧妙的解決方法:如果把這些圖片都匯入 Windows Media Player,就可以使用它的物件模型取得高度與寬度,清潔溜溜!

至少我們是這樣以為啦。結果並不是每個人都跟我們一樣欣賞把圖形檔案匯入 Windows Media Player 的方法 (那時應該要強調我們的方法不會移除或修改這些檔案,只是讓 Windows Media Player 知道檔案存在)。但是 Windows Media Player 只允許匯入 .JPG 檔案,不然無法取得資訊。萬一想處理的檔案是 .GIF、.PNG、.TIF 或 .BMP 格式呢?嗯...

所以我們找到了其他途徑,可以判斷圖形檔案的高度與寬度。真的這麼簡單?其實要動一點手腳,您必須下載並安裝 Windows Image Acquisition Automation Library 2.0。安裝完畢後,只要四行簡單的程式碼就可以判斷圖形檔案的高度與寬度:

Set objImage = CreateObject("WIA.ImageFile")
objImage.LoadFile "C:\Scripts\Test.gif"
Wscript.Echo "Width: " & objImage.Width
Wscript.Echo "Height: " & objImage.Height

您可能會想,既然這麼簡單,為何不把這個程式庫乾脆加到作業系統裡就好了?這個問題我們無法回答,只能解釋指令碼運作的方式。如您所見,您不用太麻煩:先建立 WIA.ImageFile 物建的執行個體,再使用 LoadFile 方法繫結至圖形檔案。真的非常簡單:只要把圖形的檔案路徑傳 LoadFile 就得了。

接著回應 WidthHeight 屬性的值。這個方法適用 .GIF、.PNG、.TIF、.BMP 與 .JPG 檔案,仔細瞧瞧範例指令碼,您會發現我們連結的是 .GIF 檔案。世界真奇妙,不是嗎?

順便一提,您也可以使用 Windows Image Acquisition 擷取圖形檔案其他的屬性。如需進一步資訊,請參閱 MSDN 上的 WIA 文件。順便跟各位讀者保證,我們以後不敢再耍小聰明了。教訓已經學到了!


如需詳細資訊

查看嗨,Scripting Guy!- 過往文件

 

回到頁首 回到頁首