![Скриншот, сохраненный в формате PNG, имеет другой размер в Linux и Windows](https://rvso.com/image/1520076/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2C%20%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%20%D0%B2%20%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B5%20PNG%2C%20%D0%B8%D0%BC%D0%B5%D0%B5%D1%82%20%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B9%20%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%20%D0%B2%20Linux%20%D0%B8%20Windows.png)
Вот в чем дело: несколько недель назад я полностью перешел на 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.