PNG может сохранить те же декодированные пиксели компактнее многих BMP, но степень экономии зависит от устройства исходного файла и содержания изображения. Сравните результат с оригиналом.
BMP → PNG
Не судите об устройстве BMP по расширению
BMP описывает семейство растровых файлов, а не один неизменный способ хранения. Заголовок может содержать ширину, высоту, число бит на пиксель и признак способа хранения. В некоторых файлах есть таблица цветов, в других применяются маски каналов. Поэтому по одному расширению нельзя вычислить, сколько байтов займёт соответствующий PNG.
Перед преобразованием запишите размеры в пикселях, глубину цвета и видимые признаки прозрачности. Старый значок с палитрой, снимок экрана с истинным цветом и файл с нестандартными масками могут по-разному интерпретироваться программами. Если просмотрщик и преобразователь читают структуру не одинаково, цвета результата будут отличаться даже при успешном открытии обоих файлов.
Сначала определите назначение: размещение в сети, экономия места, вставка в документ или сохранение архива. Для сети важны объём передачи и отображение в браузере; для документа — фактический размер размещения; для архива — возможность вернуться к оригиналу. Так вы сможете оценивать результат по нужным свойствам, а не по обещанию случайного процента сжатия. Заранее выберите несколько действительно характерных исходников, иначе единственная удачная картинка создаст ложное впечатление о целой коллекции.
- Запишите размер и глубину цвета.
- Отметьте палитру и маски каналов.
- Определите назначение результата.
Одинаковое расширение BMP не означает одинаковую внутреннюю структуру.
Поймите пределы сжатия без потерь
PNG сжимает данные изображения без намеренного отбрасывания представляемых пикселей. Однотонные участки, повторяющиеся узоры и чёткие контуры часто хорошо сжимаются. Шумная фотография может дать гораздо меньшую экономию; исходный BMP тоже не всегда устроен как несжатый массив. Поэтому размер нужно измерять на характерных примерах, а не выводить из названия формата.
Слова «без потерь» не означают улучшение исходника. Если в BMP уже видны размытость, ступеньки диагоналей или полосы на градиенте, смена формата не создаст текстуру и дополнительные цвета. PNG меньшего размера может показывать те же пиксели; больший файл не обязательно лучше. Разделяйте оценку объёма и оценку сохранности изображения.
Для сравнения откройте декодированные изображения при одинаковом масштабе и проверьте мелкий текст, линии толщиной в пиксель и переходы оттенков. Если требуется точная проверка, сравните значения пикселей подходящей программой после согласованного декодирования. Заметное расхождение бывает связано с чтением палитры, масок или прозрачности, а не с самим алгоритмом сжатия PNG.
- Сравнивайте размер в байтах отдельно от качества.
- Проверяйте декодированные пиксели.
- Не ждите восстановления деталей.
Меньший файл PNG сам по себе не доказывает потерю качества.
Проверьте цвет и прозрачность на разных фонах
Прежде чем записать PNG, программа должна правильно прочитать палитру, маски и глубину цвета BMP. Откройте источник и результат в одной программе. Посмотрите на нейтральные серые области, фирменные цвета, плавные переходы и жёсткие края. Поддержка большего числа оттенков в PNG не возвращает оттенки, которых не было в исходной палитре.
Прозрачность требует отдельной проверки. Разновидности BMP и приложения могут неодинаково трактовать данные, похожие на альфа-канал. Поместите PNG на шахматный, светлый и тёмный фон. Ищите прозрачные дыры, внезапно непрозрачный прямоугольник, светлые либо тёмные ореолы у краёв и исчезнувшие участки, которые должны оставаться сплошными.
Осмотрите файл также в программе, где он будет использоваться. Небольшой предварительный просмотр может скрыть неправильный канал цвета и бахрому вдоль полупрозрачных границ. Увеличьте знакомые участки и сравните их в одинаковых условиях. Если обнаружено расхождение, сначала исследуйте особенности BMP и настройки декодирования, а не пытайтесь исправить проблему изменением имени файла.
- Сравните цвета в одном просмотрщике.
- Посмотрите края на светлом и тёмном фоне.
- Проверьте неожиданную прозрачность.
Возможность прозрачности у PNG не гарантирует одинакового прочтения альфа-данных BMP.
Отделите пиксельные размеры от метаданных
Проверьте ширину и высоту скачанного PNG в пикселях. Если они отличаются от BMP, помимо смены формата произошло масштабирование или кадрирование. Изучите мелкие буквы, диагонали и тонкие линии при целевом размере отображения. Размер миниатюры на странице преобразователя не заменяет свойства сохранённого файла.
Параметр физического размещения в документе — отдельный вопрос. При одинаковом числе пикселей данные о разрешении, выраженные, например, в пикселях на метр, могут переноситься иначе. Для печатного макета вставьте PNG в копию документа и проверьте размер, получившийся на странице. Если он изменился, настройте размещение осознанно, не меняя исходный файл вслепую.
Сведения о цветовом профиле, разрешении и комментариях также не обязательно переходят между форматами. Визуальное совпадение не доказывает сохранность всех служебных полей. При важном архивном или производственном использовании посмотрите нужные свойства отдельной утилитой и храните критически важные записи за пределами изображения, если они должны пережить будущие преобразования.
- Сверьте точную ширину и высоту.
- Проверьте размещение в макете.
- Проверьте нужный профиль и разрешение.
Сохранение пикселей не равнозначно переносу всех служебных данных.
Испытайте несколько файлов в конечной среде
Для начала преобразуйте простой рисунок, фотографию и образец с палитрой либо возможной прозрачностью. Откройте каждый скачанный PNG в независимом просмотрщике и в целевой программе. Запишите размеры, цвета, прозрачность, ориентацию и объём в байтах. Если один тип файла вызывает сбой, разберите его структуру до обработки всей папки.
Поместите результат на настоящую веб-страницу или в документ в предполагаемом размере. Проверьте чёткость, фон, скорость открытия и экспорт документа, если он предусмотрен. Сохраняйте исходный BMP и одобренный PNG под разными именами. Файл, который оказался больше ожиданий, не обязательно неудачен: пригодность определяется также верностью изображения и совместимостью. Повторите просмотр после сохранения итогового документа, поскольку его экспорт может по-своему обработать вставленную картинку.
При пакетной работе сгруппируйте исходники с похожей глубиной цвета и устройством каналов; проверьте хотя бы один результат из каждой группы. Удачный пример с 24-битным снимком не проверяет файл с палитрой или масками. При странном размере или виде остановитесь и исследуйте причину. Финальный критерий — нужные пиксели, размеры и открытие в действительном месте применения. Запишите исключения и сохраните оригиналы до окончания проверки всей партии, чтобы можно было воспроизвести обработку проблемного файла.
- Испытайте разные структуры BMP.
- Откройте скачанное в конечной программе.
- Запишите и байты, и визуальный результат.
Принимайте PNG после проверки пригодности, а не по заданному коэффициенту сжатия.
Главное
- Сжатие PNG без потерь часто эффективно для однотонных областей и повторяющихся деталей.
- BMP бывает разной глубины цвета и структуры, поэтому фиксированного уменьшения размера нет.
- Преобразование формата не восстанавливает отсутствующие детали и не повышает разрешение.
- После загрузки проверьте цвет, прозрачность, размеры, необходимые метаданные и целевую программу.
Частые вопросы
Всегда ли PNG меньше BMP?
Нет. Экономия зависит от устройства BMP и содержания картинки; измерьте конкретные файлы.
Меньший размер PNG означает худшее качество?
Не обязательно: сжатие без потерь может хранить те же пиксели компактнее.
Повысится ли разрешение после преобразования?
Нет. Смена формата не добавляет подлинных деталей; сравните размеры в пикселях.
Всегда ли сохранится прозрачность?
Нет гарантии: разные BMP и программы трактуют альфа-данные по-разному. Проверьте на нескольких фонах.
Что проверить перед использованием?
Сверьте пиксели, размеры, цвет, прозрачность, нужные метаданные, объём и работу в целевом приложении.