BMP в JPEG, или о пакетной конвертации изображений

Конвертирование BMP в JPEG
Конвертирование BMP в JPEG

Здравствуйте, дражайший читатель.

Всем известно, насколько суровы русские программисты. Именно мы — когда нам надо сделать что-то, не ищем программу для этого, а пишем её сами (автору «записки жены программиста» — привет!). Так случилось и вчера. Знаете ли, наснимал скриншотов из игры Modern Warfare 2 Fraps’ом, для новой заметки. Да вот беда — этот поцмонек не хочет сохранять ни в чем другом, кроме как BMP. А файлов то, 70 штук… Ручками через фотошоп это дело конвертировать в Jpeg я бы задолбался. Но ясное дело! Я помню, что была такая фишка в ACDSee — выбираешь кучу файлов, и конвертишь эту кучу в добрые полтора десятка форматов — любой на выбор. Правда, во-первых, мне не надо было в любой, а во-вторых, ставить этого монстрика только ради одной нужной функции… Ну его на хер. В общем, ошибку мишигинера по имени «Fraps» надо было срочно исправлять, и не руками. Нет, вы не подумайте, я честно поискал, и даже нашёл софтинку по имени svpeg. После четвёртой попытки заставить её работать, а не вылетать по ошибке, я решил, что проще написать самому (второй привет автору записок жены программиста). Сказано — сделано. Нет, нет, писалось оное не два дня, я всего лишь 1,5 часа и заняла 200 строк кода (привет авторам .NET Framework). Что таки умеет? Ой, для начала не вылетать после конвертации одного-единственного файла. Затем, умеет ещё конвертировать между форматами BMP, Jpeg, TIFF, Gif и Png в любом сочетании и направлении — пакетно. Т.е. выбираем список файлов исходного формата, выбираем конечный формат, и если это Jpeg то ещё и качество сжатия, и тычем кнопу «Поехали». В той же папке, где лежат оригиналы, появятся новые файлы с новым расширением, и состоящие из имени старого файла, с префиксом new_ (ну, разумеется, префикс можно поменять)… Групповое переименование не юзалось, ибо нех — тотал коммандер всё это умеет и так. Не умеет? Пережимать в несколько потоков, например. Всё гонится в один поток — но конверсия сотни файлов на моём компе занимает где-то секунд 20-30. Размер 1680х1050 пикселей.

Короче, суть да дело — решил выложить оную в открытый доступ. Потому как проблема, наверное, есть у многих. Кто как её решает, я решил вот так :) В принципе — можно юзать и ACDSee, или порыться и найти специализированное что-то более. А так, на скорую руку — сгодится и это.

Скачать (8 кб).

Исходник класса-обработчика изображений (2 кб)

О глюках, ошибках и прочем — сообщайте в комментарии сюда.

Автор

Алекс Разгибалов

Сумасшедший мужчина, неопределённого возраста, наслаждающийся манией преследования. Паталогически недоверчив, эгоистичен, авторитарен. Вторичные диагнозы - программист и поц. Владеет английским языком на уровне около хренового разговорного. Также знаком с некоторыми другими языками. Интересуется всем и вся, за счёт чего в любой области знания являются поверхностными, неглубокими. Характер невыдержанный. Крепость - 55 градусов.

BMP в JPEG, или о пакетной конвертации изображений: 11 комментариев

  1. — «порыться и найти специализированное что-то более.»

    Хороший вариант — IrfanView. Этот просмотрщик имеет мощный инструмент пакетной обработки изображений — можно за один проход не только преобразовать файлы в другой формат, но и переименовать, и обрезать, и размер изменить и много еще чего. Весит мало, работает быстро.

    1. Дохлый линк на скачку. А насчёт IrfanView спасибо, когда-то им пользовался, но после очередной переустановки виндов потерял.
      Сейчас напомнили название — скачал и сделал что надо, 10гигов сжалось в 2

  2. Спасибо за советы :) Я по правде говоря слегка тупанул, потому как в более новой версии Fraps умеет сохранять скриншоты в Jpeg и ещё пару форматов :) Просто поставил новую версию))) А так, ну побаловался немного с .NET и наваял нечто, чем сам хоть иногда буду пользоваться :)

    А насчёт просмотровщика — это двойное данке, ибо давно уже подумываю — что бы такое заюзать… Потому что ACDSee ну как-то не перевариваю — в неё напихали столько всего, что с тем, что было в мою юность — оно никак не сравнится, это чуть ли не второй фотошоп… Айфран когда-то давно был… Правда я его не особо использовал, надо посмотреть, чиво они там нового придумали))

    PS: За Ifran спасибо :) Поставил, подключил русский — действительно лёгкий, конвертить умеет во много чего)) Теперь проблема однозначно снята )

    1. фрапс давно умеет сохранять в jpg, но делает это только в платной версии. Я однажды видел ломаный фрапс, но он был уж слишком ломаный — постоянно вылетал и зависал. Так что вопрос всё ещё актеальный.

  3. Прога зависла, когда конвертировал 1 гб ВМР-шек. Затем слетела. И еще она должна спрашивать, КУДА конвертировать! А то у меня щас каша в папке со скринами — jpeg, bmp, jpeg… Как разгребсти мне щас всё это автоматизированно?

    1. А шо вы хотели от софтинки, которая писалась на коленке и для себя? Выкладывалось оно в общем-то больше программистам, а не юзерам — как пример кода… Удолить то их в принципе можно по префиксу — вроде как new_ — отсортируйте по имени, и пройдитесь убивающей клавишей по ним.

  4. Жалко что программа эта не удаляет исходные файлы и надо самому всё удалят,не плохо бы было поставить функцию такую,чтоб после запрашивало сколько и что удалить.А так оптом файлы загрузил вроде пока что работает программа,надеюсь проблем не будит,ату с паинтом и обычным виндовсом каждую фото можно спятить вот так вот переводить в ЕПГ.Не понял только одно зачем впихнули качество сжатия,по мне бы стояло впихнуть туда,наоборот не эту функцию а какого качества держалась чтоб изображение.

    1. Качество сжатия — это вот оно как раз и есть. И актуально только в случае с jpeg. В принципе это ведь не полнофункциональная конвертилка — больше как временная тулзень, чтобы не ставить ничего. Не так давно ковырял — запилил многопоточную конвертацию, но там память откуда-то течёт, так что ещё не публиковал.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Собирать идеально - не обязательно, просто приблизительно соберите картинку (должен быть включен JavaScript).WordPress CAPTCHA