W jaki sposób mogę wyświetlić rozmiar pliku .JPG w pionie i w poziomie?
Skrypciarze odpowiadają na Wasze pytania
Witamy w rubryce TechNet, w której Skrypciarze z firmy Microsoft odpowiadają na częste pytania dotyczące używania skryptów w administracji systemu. Jeśli macie jakieś pytania z tej dziedziny, zachęcamy do wysłania e-maila na adres: scripter@microsoft.com. Nie możemy zagwarantować odpowiedzi na każde otrzymane pytanie, ale staramy się jak możemy. |
W jaki sposób mogę wyświetlić rozmiar pliku .JPG w pionie i w poziomie?
Cześć, Skrypciarzu! Chciałbym wyświetlić rozdzielczość pliku .JPG w pionie i w poziomie?
-- Staszek
Cześć, Staszku. Często słyszymy to pytanie, ale do niedawna nie znaliśmy na nie odpowiedzi – wyglądało na to, że żadna funkcja systemu operacyjnego nie może pobrać odpowiednich informacji. Nawet Dsofile (j.ang.), obiekt COM wydany przez zespół Microsoft Office z myślą właśnie o podawaniu wartości właściwości rozszerzonych tego rodzaju, nie poda nam rozmiarów obrazów. Wyglądało beznadziejnie.
Ale czyż moglibyśmy się poddać, tylko dlatego, że mieliśmy małe szanse na sukces? No cóż – owszem. Jednak kiedy przygotowywaliśmy do działu Fun Zone (j.ang.) artykuł o zastosowaniu skryptów w zarządzaniu plików muzycznych i list odtwarzania, zupełnie przez przypadek natknęliśmy się na coś, co mogło posłużyć jako okrężna droga rozwiązania problemu: po zaimportowaniu plików .JPG do programu Windows Media Player można uzyskiwać o nich informacje (w tym rozmiar w pionie i w poziomie) za pomocą skryptów.
Zwróćmy jednak uwagę, że Windows Media Player domyślnie nie śledzi obrazów. W celu dodania plików .JPG do kolekcji multimediów należy w programie Media Player otworzyć menu Plik, po czym wybrać jedną z opcji menu Dodaj do Biblioteki. Wcześniej jednak trzeba otworzyć menu Narzędzia, kliknąć Opcje i w zakładce Odtwarzacz wybrać opcje Włącz obsługę obrazów dla urządzeń. Jeśli nie włączy się obsługi obrazów, Windows Media Player będzie informować, że .JPG to nieobsługiwane rozszerzenie. Włączmy ją zatem, a następnie dodajmy obrazy do kolekcji mediów.
Uwaga. Pliki .JPG nie zostaną przeniesione, a Media Player nie stanie się domyślnym programem do ich otwierania; nie stanie się nic więcej ponadto, że Media Player będzie wiedział o ich istnieniu.
Kiedy Windows Media Player będzie już wiedział o plikach .JPG, można uzyskać informacje o ich wymiarach w pionie i poziomie za pomocą takiego skryptu:
Set objPlayer = CreateObject("WMPlayer.OCX" )
Set colMediaCollection = objPlayer.mediaCollection
Set objPhotos = colMediaCollection.getByAttribute("MediaType", "photo")
For i = 0 to objPhotos.Count - 1
Set objPhoto = objPhotos.item(i)
Wscript.Echo "Name: " & objPhoto.Name
Wscript.Echo "Height: " & objPhoto.getItemInfo("WM/VideoHeight")
Wscript.Echo "Width: " & objPhoto.getItemInfo("WM/VideoWidth")
Next
Na początku skryptu tworzone jest wystąpienie obiektu WMPlayer.OCX; następnie skrypt łączy się z kolekcją mediów Windows Media Player. Następnie przy pomocy metody getByAttribute pobierana jest kolekcja wszystkich obrazów (czyli plików .JPG w świecie programu Windows Media Player 10).
Nasze obrazy wracają do nas w postaci tablicy; interesują nas wszystkie pliki, więc tworzymy pętlę For Next, przechodzącą od elementu 0 (pierwszy element tablicy ma zawsze numer 0) aż do elementu o numerze równym liczbie elementów minus jeden (objPhotos.Count – 1). Wewnątrz tablicy łączymy się z każdym z plików .JPG przy pomocy poniższego wiersza:
Set objPhoto = objPhotos.item(i)
Potem wywołujemy echo wartości atrybutów Name, WM/VideoHeight i WM/VideoWidth. Jak się być może domyślacie, dwa ostatnie atrybuty podają wysokość i szerokość każdego z obrazów.
Co ciekawe, z plikami .JPG można zrobić wiele więcej niż tylko podać ich rozmiary. Kompletna lista atrybutów obrazów znajduje się na stronie Windows Media Player SDK (j.ang.) w witrynie MSDN.
Do początku strony