Я создал разные несжатые растровые изображения с одинаковым размером пикселя (2000x2000) и разным содержимым (черный, красный, белый и фотография), ожидая, что размер файла в байтах будет одинаковым независимо от содержимого.

Это были результаты:

  • Команда wc -c сообщает об одном и том же размере для каждого изображения (12000056 байт).
  • Hex Editor сообщает одинаковые результаты по размеру. Я также могу ясно видеть информацию о точечных рисунках для каждого канала RGB, как и ожидалось.
  • Mac OSX "Finder" и "Get Info" сообщают о небольших различиях. (12 106 957, 12 005 274, 12 005 261 ...)

Что может оправдать эти различия? Эта ОС добавляет метаданные? Что-то связано с файловой системой? Есть ли способ точно узнать, что происходит?

1 ответ1

0

Похоже, это было связано с тем, что файлы имеют вилки ресурсов, а также вилки данных. Вилки ресурсов - это старая (в основном устаревшая) функция файловой системы OS X, которая может хранить дополнительные данные о файле. Средство поиска будет рассматривать ветвь ресурса как часть размера файла, но большинство инструментов в стиле Unix даже не знают, что они существуют, и, следовательно, не будут отображать их как часть размера файла. Вот список старого документа, который у меня есть:

$ wc -c About\ iMac\ Firmware\ Update 
    2710 About iMac Firmware Update
$ ls -l@ About\ iMac\ Firmware\ Update
-rwx---r-x@ 1 gordon  staff  2710 Sep 14  2001 About iMac Firmware Update
    com.apple.FinderInfo      32
    com.apple.ResourceFork  17759

В информационном окне Finder его размер составляет 20 269 байт (= 2 710 в ветке данных + 17 759 в ветке ресурсов).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .