Centrum Skryptów - Systemy Operacyjne

W jaki sposób mogę wyświetlić rozmiar pliku .JPG w pionie i w poziomie? Udostępnij na: Facebook

Skrypciarze odpowiadają na Wasze pytania

Cześć Skrypciarze!

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 Do początku strony


Centrum Skryptów - Systemy Operacyjne