Привет, Друзья!
Сегодня статья будет не очень большая (я и правда так думал как только начал писать статью), но думаю что кому-нибудь она точно поможет 😎
У меня появились фотографии с раcширением HEIC и нужно было их обработать, но проблема состояла в том что этот вот HEIC не так то просто и открыть на компьютере с Windows. Честно говоря он мне именно этим совсем и не нравится и я точно знаю, что не мне одному.
Сначала я честно попробовал найти и установить специальные плагины, но в итоге, когда вся эта ситуация меня полностью вывела из себя, я решил эту проблему так, как я уже привык решать эти проблемы. Я написал программу 😁
Начиная с этой статьи (потом добавлю так же и в предыдущие), я буду добавлять готовые программы, чтобы можно было просто скачать и пользоваться. Но помимо готовой программы, я буду добавлять ссылку на исходники.
Скачать программу можно с Яндекс диска (инструкцию по работе вы сможете найти ниже):
Статья будет поделена на несколько частей. В первой части будет описана работа кода программы, а во второй части инструкция по работе с этой программой. Дзен автоматически формирует оглавление, так что призываю вас этим пользоваться, это удобно 😉
Дзен, к моему глубокому сожалению, по прежнему некорректно отображает табуляцию, поэтому добавляю ссылку на мой репозиторий (там исходники если что) на Github:
Описание работы кода программы.
Исходный код:
from pillow_heif import register_heif_opener
from PIL import Image
import os
import configparser
register_heif_opener()
# Читаем конфиг
config = configparser.ConfigParser()
config.read("config.conf")
del_before_convert = config.getboolean("Settings", "del_before_convert", fallback=False)
def convert_heic_to_png(input_folder, output_folder, delete_after=False):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for file in os.listdir(input_folder):
if file.lower().endswith(".heic"):
input_path = os.path.join(input_folder, file)
output_path = os.path.join(output_folder, os.path.splitext(file)[0] + ".png")
try:
with Image.open(input_path) as img:
img.save(output_path, "PNG", quality=100)
print(f"Конвертировано: {file} -> {os.path.basename(output_path)}")
if delete_after:
os.remove(input_path)
print(f"Удалено: {file}")
except Exception as e:
print(f"Ошибка при конвертации {file}: {e}")
if __name__ == "__main__":
input_folder = "data/heic"
output_folder = "data/png"
convert_heic_to_png(input_folder, output_folder, del_before_convert)
Описание:
1. Для начала импортируем нужные библиотеки:
- pillow_heif.register_heif_opener() — регистрирует поддержку формата HEIC в библиотеке Pillow, что позволяет открывать изображения этого типа.
- PIL.Image — используется для работы с изображениями (открытие, сохранение в другом формате).
- os — для работы с файловой системой (чтение, создание папок, удаление файлов).
- configparser — для чтения конфигурационного файла config.conf.
2. Теперь читаем файл конфигурации:
- Загружается конфигурация из config.conf.
- Из раздела [Settings] читается параметр del_before_convert, который определяет, нужно ли удалять исходные файлы HEIC после конвертации (по умолчанию False).
3. Функция convert_heic_to_png():
3.1. Принимает три аргумента:
- input_folder — папка с HEIC-файлами.
- output_folder — папка, куда будут сохраняться PNG-файлы.
- delete_after — если True, исходные HEIC-файлы будут удалены после конвертации.
3.2. Если папка output_folder не существует, она создается.
3.3. Программа перебирает файлы в input_folder, проверяя, заканчивается ли имя на .heic.
3.4. Открывает каждый HEIC-файл, конвертирует его в PNG и сохраняет с качеством 100%.
3.5. Выводит сообщение об успешной конвертации в окно консоли.
3.6. Если delete_after=True, удаляет исходный HEIC-файл.
Как работать с программой ConvertHeicToPng.
Что вам понадобится.
- Файл программы: ConvertHeicToPng.exe
- Файл настроек: config.conf
- Папка data, содержащая две подпапки:
- heic — сюда нужно поместить файлы .heic для конвертации.
- png — сюда будут сохраняться сконвертированные файлы.
📥 Скачайте архив с программой по ссылке:
Подготовка к работе.
1. Распаковка архива.
Скачанный архив необходимо разархивировать в удобное место на вашем компьютере (например, на рабочий стол).
2. Настройка программы.
Откройте файл config.conf с помощью Блокнота или любого текстового редактора.
Найдите строку:
del_before_convert = False
Если хотите, чтобы после конвертации исходные .heic-файлы удалялись, замените False на True. Если удаление не нужно, оставьте False.
📌 Важно: Файл настроек должен находиться в той же папке, что и программа.
Как использовать программу.
1. Подготовка изображений.
- Поместите все файлы .heic, которые нужно сконвертировать, в папку heic.
2. Запуск программы.
- Дважды кликните по файлу ConvertHeicToPng.exe.
- Откроется консольное окно, в котором будет отображаться процесс конвертации.
3. Проверка результатов.
- После завершения работы программы загляните в папку png.
- Все сконвертированные изображения в формате PNG будут там.
Важные замечания.
⚠ Не закрывайте окно программы до завершения процесса. Оно закроется автоматически.
⚠ Если программа не запускается, убедитесь, что все файлы находятся в одной папке.