Ostatnimi czasy trochę siedziałem nad rozpracowywaniem w jaki sposób Nautilus tworzy miniaturki różnych rodzajów plików. Zatem z przyjemnością podzielę się z Wami swoimi obserwacjami. Wprawdzie kiedyś już pisałem co nieco o miniaturkach, ale trochę pod innym kątem (głównie dlaczego nie są generowane). Dzisiaj będzie część 1 z 3 częściowego cyklu. Prawdę mówiąc, to nie wiem ile tych części ostatecznie będzie :-)
Może zacznę od zrzutu ekranu kilku przykładowych miniaturek.

Miniaturki (thumbnails) domyślnie tworzone są za pomocą dwóch programów:
Evince Thumnbailer — moduł przeglądarki dokumentów Evince, generuje miniaturki wszelkich plików graficznych począwszy od jpg, przez png aż do PDF (pierwszą stronę).
Totem Video Thumbnailer (nazywany również Gnome Video Thumbnailer) — odpowiada za miniaturki plików filmowych. Dodatkowo dodaje „od siebie” na bocznych krawędziach obrazka otwory imitujące taśmę filmową. Co do miejsca, z którego pobierana jest klatka filmu, to jest to bardzo dziwna sprawa. Z moich obserwacji wynika, że jest to około 1/3 czasu trwania filmu. Czasem zdarza się, że pobrana jest pierwsza klatka (jest to bug, nie feature :-P ). W większości przypadków pierwsza klatka filmu jest czarna, więc taką też otrzymujemy brzydką miniaturkę. Jeżeli Totem nie potrafi otworzyć jakiegoś pliku, to oczywiście nie będzie w stanie wygenerować miniaturki.
Teraz kilka słów na temat samych plików. Wszystkie miniaturki zapisywane są jako pliki graficzne png o wymiarze większego boku 128 pikseli. Przynajmniej w teorii, bo aby utrzymać proporcje wymiarów (aspect ratio), pliki często mają nieco inne wymiary. Wszystkie pliki miniaturek przechowywane są w ukrytym katalogu (kropka przed nazwą) /home/nazwa/.thumbnails/normal. Jeżeli z jakiś powodów nie uda się wygenerować Nautilusowi miniaturek, to tworzy plik png o rozmiarach 1×1 px i wrzuca go do /home/nazwa./thumbnails/fail/gnome-thumbnail-factory.
Chcąc wymusić generowanie miniaturek na nowo, po prostu kasujemy pliki z normal bądź fail. Jeżeli skasujemy plik, dla którego istnieje miniaturka, to jest ona automatycznie usuwana. Niestety czasami zdarzają się „sierotki” zajmujące nam tylko miejsce na dysku. Dlatego najlepiej od czasu do czasu wyrzucić wszystko z podanych powyżej katalogów.
Zapewne zainteresują Was dziwne nazwy plików w ./thumbnails, np. 5f740c7c7935b911e744104f8922d96f.png. Odpowiedź na to pytanie znalazłem na stronie ze specyfikacjami (dostęp tylko przez Web Archive). Nazwę tworzy 32 znakowa, 128 bitowa suma kontrolna MD5 z URI do pliku. Wytłumaczę jaśniej: jeżeli np. plik blogasek.jpg znajduje się w katalogu /home/spiechu/, to URI do niego jest file:///home/spiechu/blogasek.jpg. Następnie liczona jest suma kontrolna z tego URI (a nie z pliku!) Dzięki temu Nautilus licząc MD5 z URI do plików i porównując je z tymi z katalogu ./thumbnails wie, które pliki posiadają miniaturki i wyświetla je. Niedoróbką tego wszystkiego jest to, że przenosząc bądź kopiując jakiś plik, Nautilus zamiast zmieniać nazwy miniaturkom, tworzy od początku nowe (co w przypadku plików filmowych zajmuje dosyć sporo czasu).
Linki do pozostałych części cyklu: Część 2, część 3.
Podobne wpisy:

O autorze
2 Comments
Pingback: Gnome Nautilus i miniaturki (Cz. 3 z 3) at /home/Śpiechu->Blog
Pingback: Gnome Nautilus i miniaturki (Cz. 2 z 3) at /home/Śpiechu->Blog