Stworzyłem różne nieskompresowane obrazy bitmapowe o tym samym rozmiarze pikseli (2000 x 2000) i różnej zawartości (czarny, czerwony, biały i zdjęcie), oczekując, że rozmiar pliku w bajtach będzie dokładnie taki sam, niezależnie od zawartości.
Oto wyniki:
- polecenie wc -c zgłaszające ten sam rozmiar dla każdego obrazu (12000056 bajtów).
- Hex Editor raportuje identyczne wyniki pod względem wielkości. Widzę również wyraźnie informacje o pikselach bitmapowych dla każdego kanału RGB, zgodnie z oczekiwaniami.
- Mac OSX „Finder” i „Get Info” zgłaszają niewielkie różnice. (12 106 957, 12 005 274, 12 005 261 ...)
Co może uzasadnić te różnice? Czy to system operacyjny dodaje jakieś metadane? Coś związanego z systemem plików? Czy jest jakiś sposób, aby wiedzieć dokładnie, co się dzieje?
ls -l@
plików, aby zobaczyć ich rozszerzone atrybuty i ich rozmiary.Odpowiedzi:
Wygląda na to, że było to spowodowane tym, że pliki mają widelce zasobów, a także widelce danych. Widelce zasobów to stara (w większości przestarzała) funkcja systemu plików OS X, która może przechowywać dodatkowe dane na temat pliku. Finder weźmie pod uwagę rozwidlenie zasobów jako część rozmiaru pliku, ale większość narzędzi w stylu uniksowym nawet nie wie, że istnieją, a zatem nie będzie ich wyświetlać jako część rozmiaru pliku. Oto lista starego dokumentu, który mam:
Okno Informacje Findera pokazuje swój rozmiar jako 20 269 bajtów (= 2710 w rozwidleniu danych + 17 759 w rozwidleniu zasobów).
źródło