Скриншот, сохраненный в формате PNG, имеет другой размер в Linux и Windows

Скриншот, сохраненный в формате PNG, имеет другой размер в Linux и Windows

Вот в чем дело: несколько недель назад я полностью перешел на Linux и редактировал электронную таблицу, которой пользуюсь регулярно, и вдруг понял, что когда я делаю снимок экрана ее части, полученное изображение теперь занимает в 2,5 раза больше места, чем эквивалентное изображение в Windows для той же области экрана... почему?

Шаги

  • Windows 7: откройте электронную таблицу в LibreOffice, сделайте снимок всего экрана с помощью стандартного сочетания клавиш, вставьте в MS Paint, вырежьте нужную область, сохраните в формате PNG
  • Ubuntu Linux 16.10: откройте электронную таблицу в LibreOffice, сделайте снимок экрана нужной области с помощью встроенного инструмента Ubuntu, сохраните как PNG

Я даже пересохранил Linux с помощью GIMP, используя максимальное сжатие, но размер изображения скриншота в Linux составляет около 106 КБ, в то время как в Windows он был около 42 КБ, в основном тот же размер изображения (на 10 пикселей шире при той же высоте 360 пикселей). Размер рабочего стола был 1920x1080 в Windows и 1680x1050 в Linux, но это не должно иметь значения, так как размер изображения тот же... GIMP сообщает об одинаковом количестве пикселей для обоих (около 305 КБ), одинаковой памяти, используемой при загрузке (3,1 МБ), и одинаковом количестве слоев (1) - единственное, что отличается, это разрешение, которое было 96 в Windows и 72 в Linux, но, опять же, это не должно иметь значения, учитывая, что другие числа одинаковы.

Есть ли объяснение, почему? Может быть, MS Paint использует сжатие PNG с потерями?

решение1

Не существует такого понятия, как сжатие PNG с потерями.

Но, безусловно, есть нечто вроде превосходного сжатия PNG. То есть не каждое приложение, поддерживающее сжатие PNG, может справиться с этой задачей так же хорошо, как другое приложение.

Именно по этой причине я использую приложение PNGGauntlet в Windows для оптимизации размера моих PNG-файлов. Само PNGGauntlet использует PNGOut, OptiPNG и DeflOpt и выбирает лучшие из их выходных данных. При этом ненужная прозрачность отбрасывается, глубина цвета уменьшается до минимально возможного уровня и используется лучший алгоритм сжатия.

Я считаю, что вы можете составить копиюOptiPNGдля Linux.

Связанный контент