Как стать автором
Обновить

Конвертируем .bmp в .png, с помощью Python и PIL

Время на прочтение1 мин
Количество просмотров8.3K
В предыдущем посте я воспользовался стандартным «PrtSc», на Windows XP, сделав серию из скриншотов, обработав и сохранив их в обычном Paint'е — получилось около 3.5 Мб на каждую картинку.

Здесь хочу исправить получившееся недоразумение, средствами питона (по-прежнему, версии 2.6).

Вообще забавно, но после установки PIL проблема решается в две строчки кода.
import Image

Image.open('1.bmp').save('1.png')

Получилось порядка 27 Кб на картинку, против первых 3.5 Мб


Порадовались, и написали код, для массовой конвертации из существующей папки.
import os, Image

os.chdir('F:\\4habr\\1publication'# поменяем директорию на ту, где у нас расположены картинки

for fname in os.listdir(os.getcwd()): # os.listdir - соответственно, есть ли что-нибудь, у нас, в папке,
    try:
        Image.open(fname).save(os.path.splitext(fname)+'.png'# а os.getcwd() - папка, в которую мы однажды перешли
    except DefaultError: 
        print('Sorry, we have no pictures.')

И ещё, кому интересно, для упрощения процедуры массового конвертирования можно использовать вот этот скриптик, который в свою очередь задействует Tkinter.

Если у Вас есть идеи, как код улучшить — с радостью их приму на вооружение.
Теги:
Хабы:
Всего голосов 29: ↑17 и ↓12+5
Комментарии8

Публикации

Истории

Работа

Data Scientist
74 вакансии
Python разработчик
135 вакансий

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн