Расширение — это часть имени#
После точки — .png или .jpg: это расширение файла. Перед точкой находится его основное имя, например picture. Расширение помогает компьютеру выбрать приложение и значок; например, Windows связывает разные окончания с подходящими программами. Но расширение само по себе не перезаписывает содержимое документа или изображения.
Внутри у файла лежат данные в определённом устройстве. У PNG это не просто картинка с надписью PNG в названии: файл начинается с сигнатуры из восьми байтов, после которой идут блоки с описанием изображения. Спецификация W3C приводит эти первые байты: 89 50 4e 47 0d 0a 1a 0a. JPEG устроен иначе — это уже другая запись изображения.
Так что у одного файла могут одновременно оказаться имя sample.jpg и данные PNG. В списке файлов будет видна надпись .jpg, но она не доказывает, что картинку действительно сохранили в JPEG. При переименовании меняется запись об имени в папке, а не содержимое самого файла. Это и показал совпавший хеш в нашем опыте.
Расширение всё же важно: по нему система может выбрать приложение для запуска и значок. Поэтому после смены .png на .jpg двойной щелчок иногда поведёт себя иначе, хотя внутри лежит та же картинка. Это похоже на смену наклейки на коробке: содержимое пока не трогали, но человек, который выбирает коробку по наклейке, может принять другое решение. Аналогия заканчивается там, где программа начинает читать сами данные и распознавать формат по ним.
Microsoft отдельно предупреждает: смена окончания не конвертирует файл, а лишь меняет его имя. Windows использует расширение как подсказку для выбора приложения и значка; программа при открытии может дополнительно смотреть на сами данные.
📌 Короткое правило
Переименовать — изменить подпись в имени. Конвертировать — открыть данные изображения и сохранить их заново в другом формате.
Как я проводил эксперимент#
Сначала — тестовая картинка RGB размером 64 × 48 пикселей: белое поле, красная и синяя половины, чёрная диагональ. Я нарисовал её сам и сохранил как PNG через Pillow 12.2.0. Это не фотография и не файл из пользовательской папки.
Потом — только новое имя. Для этой копии я сравнил размер, SHA-256 — цифровой отпечаток файла, — байты и первые восемь байтов. Формат проверили Pillow, системная утилита file и ffprobe из FFmpeg.
Дальше — уже настоящее сохранение. Я открыл исходный PNG и записал отдельную копию как converted.jpg. Затем сделал её побайтную копию same-jpeg.jpeg, не меняя содержимое. Параметры JPEG при экспорте я специально не задавал: библиотека использовала настройки по умолчанию. Так в опыте проверены три действия: переименование PNG, экспорт в JPEG и смена окончания у уже готового JPEG.
Я не открывал файлы в Проводнике, Paint, приложении «Фотографии», macOS Preview или галерее телефона. Поэтому далее нет обещания, что конкретная программа откроет файл с неподходящим расширением. Здесь сравниваются байты тестового файла и результаты именно этих трёх инструментов.
После смены имени все три инструмента видели PNG#
sample.png превратился в sample.jpg, а содержимое осталось прежним. До и после было 396 байт. SHA-256 совпал: a7e32a7bf40b309ea60bc293a124e350ba9b7f9fe768f5808e4cfc78881462ba. Первые восемь байтов тоже сохранились — это сигнатура PNG.
| Файл |
Размер |
SHA-256 |
Pillow |
file и ffprobe |
sample.png, исходник |
396 байт |
a7e32a7b…881462ba |
PNG |
PNG |
sample.jpg, только переименован |
396 байт |
a7e32a7b…881462ba |
PNG |
PNG |
converted.jpg, сохранён в JPEG |
1139 байт |
923bf157…299dc3e58 |
JPEG |
JPEG |
same-jpeg.jpeg, копия JPEG с другим окончанием |
1139 байт |
923bf157…299dc3e58 |
JPEG |
JPEG |
Одинаковый хеш здесь не единственное подтверждение: байты сравнили напрямую. sample.jpg остался PNG и по сигнатуре, и по мнению всех трёх инструментов. ffprobe указал кодек png и размер кадра 64 × 48; file тоже вывел PNG, а Pillow вернул формат PNG.
В документации Pillow описана разница: при открытии библиотека распознаёт формат по содержимому, а при сохранении без дополнительных настроек выбирает его по расширению имени. Эти действия в одном приложении могут опираться на разные подсказки.
Если смотреть только на имя, кажется, будто файл уже JPG. Если проверить данные, видно, что поменялась лишь надпись. Некоторые программы открывают такой файл по его содержимому, а другие могут ориентироваться на расширение и сообщить об ошибке или предложить другую программу. Сам тест не позволяет предсказать поведение всех просмотрщиков и сайтов.
При настоящем сохранении формат и данные изменились#
Во второй части я открыл тестовый PNG и сохранил отдельную копию как JPEG. Теперь размер стал 1139 байт. Новый SHA-256 — 923bf15731735fc1c8a16a706fea0a60178f9d31ef573d2054ae387299dc3e58. В начале файла появились байты ff d8 ff, а Pillow, file и ffprobe распознали JPEG. ffprobe сообщил кодек mjpeg и прежние размеры изображения — 64 × 48.
На этом шаге программа прочитала пиксели из PNG, затем заново записала изображение в формате JPEG. Содержимое изменилось — это видно по другому хешу и сигнатуре. Насколько поменяются цвета и детали, зависит от картинки и настроек сохранения; в этом опыте качество разных параметров не сравнивалось.
JPEG в этом опыте оказался крупнее исходного PNG, но это не значит, что JPEG всегда занимает больше места. Мы использовали маленькую картинку с большими ровными областями, а размер зависит от изображения и настроек сохранения. Если нужно отправить фото полегче, переименование размер не уменьшит; в статье о том, как сжать фото, разобрали способы изменить сам файл.
⚠️ Не удаляйте исходник сразу
При конвертации программа создаёт файл с другим содержимым. Сначала сохраните копию под новым именем, откройте её и проверьте, что результат подходит. Оригинальный PNG можно убрать позже, если он действительно больше не нужен.
Как действительно получить JPEG#
JPG и JPEG — два окончания одного формата. Microsoft перечисляет .jpg и .jpeg как расширения JPEG-файла. В нашем дополнительном опыте копия converted.jpg, переименованная в same-jpeg.jpeg, сохранила все 1139 байт и тот же SHA-256; Pillow, file и ffprobe продолжили видеть JPEG.
Отсюда важное уточнение. Если изображение уже сохранено в JPEG, смена .jpeg на .jpg меняет только имя и оставляет его JPEG. Но PNG после такого переименования JPEG не становится. Если сервис принимает только .jpg, а редактор создал .jpeg, новое окончание можно выбрать для уже перекодированного JPEG. Для PNG сначала нужен экспорт в JPEG.
Если сервис просит именно JPG/JPEG, откройте PNG в редакторе или просмотрщике, который умеет экспортировать изображения, и сохраните копию в JPEG. Названия пунктов меню отличаются — обычно это «Сохранить как» или «Экспорт», но точный путь зависит от приложения.
Сначала убедитесь, что Windows показывает расширения. Проводник может скрывать знакомые окончания, и тогда в имени видно не всё. В Windows 11 Microsoft предлагает открыть Проводник и выбрать «Вид» → «Показать» → «Расширения имён файлов». Это только настройка отображения: она помогает увидеть настоящее окончание, но формат содержимого не меняет. В других версиях Windows пункт может быть расположен иначе.
После экспорта проверьте результат:
- Убедитесь, что рядом с исходником появился новый файл с окончанием
.jpg или .jpeg.
- Откройте копию в редакторе: проверьте, что она открывается и изображение выглядит правильно. Если программа показывает ошибку, вернитесь к списку форматов экспорта и сохраните заново. Одно открытие не доказывает формат, но помогает заметить повреждение или неожиданный фон.
- Если файл нужен для сайта, загрузите туда именно эту проверенную копию и следуйте требованиям сервиса. Ограничения по расширению, размеру и изображению могут различаться.
В эксперименте конвертацию подтвердили три инструмента и изменившееся содержимое. Обычному пользователю ставить их не нужно: достаточно выбрать JPEG при экспорте и проверить созданную копию.
Если вы точно знаете, что исходник был PNG, а после смены окончания приложение перестало его открывать, верните .png. Так система снова получит правильную подсказку в имени; содержимое картинки не изменится. Если исходный формат неизвестен, лучше снова открыть файл в программе, из которой его получили, или уточнить формат у отправителя. Случайное переименование расширений не служит надёжной диагностикой повреждённого файла.
Что показала проверка#
Переименование поменяло название, а сохранение в JPEG — данные и формат. Если сервис просит JPG/JPEG, создайте отдельную копию через экспорт и проверьте её. Само изменение окончания файла не выполняет конвертацию.
📬 Техпросто в Telegram
В нашем канале выходят новые эксперименты и понятные инструкции о технике.