3

Могу ли я узнать, был ли сжат файл PNG и как (по крайней мере, было ли это сжатие без потерь) в Windows? Когда я открываю стандартное диалоговое окно свойств файла из проводника Windows, я не вижу никаких свойств, касающихся этого.

2 ответа2

8

PNG всегда сжимается алгоритмом DEFLATE, как указано в спецификации PNG. Это тот же алгоритм, который используется Zip-компрессором.

Для PNG нет алгоритмов сжатия с потерями. PNG всегда без потерь.

Отказ от ответственности. Существуют методы "оптимизации" размера PNG путем уменьшения качества (глубины цвета) изображения перед его сохранением в формате PNG. Это не имеет ничего общего с самим PNG и не может быть надежно обнаружено ни в PNG, ни в исходном файле.

2

Оценить степень сжатия любого файла изображения на самом деле довольно просто. Вы должны знать ширину, высоту и битовую глубину изображения. Чтобы рассчитать, сколько данных потребуется для несжатых необработанных данных изображения, вам нужно сделать следующую простую вещь: raw data size = image width * image heigth * (bits per pixel / 8) . Затем просто разделите raw data size файла PNG, и вы получите приблизительный коэффициент сжатия (не точное значение из-за заголовков и т.д.). Например, для изображения 640x480x32 потребуется 640 * 480 * (32 / 8) что составляет 1 273 800 байт. Теперь давайте предположим, что ваш PNG имеет 200 КБ. Вы делите (200 * 1024) / 1273800. Это дает вам степень сжатия около 0,16.

И помните об одном факте. Иногда 24-битные изображения фактически сохраняются как 32-битные значения. Таким образом, вы должны принять это во внимание.

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