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

Фото после каждого коммита (Win)

Время на прочтение1 мин
Количество просмотров2K
Приятного времени суток!

Ох, жуть как зацепила статья alizar Фотографируемся после каждого коммита (Linux, OSX). Но в силу особенностей своей ОС, предложенные решения мне, слегка, не подошли. Проведя немного времени в поисках и не получив искомого результата, было принято решение сделать что-то простенькое (just for fun, with Demonix) для решения данной задачи…

Дано:
Несколько клиентов для разных систем (изврат, но что поделать)

Найти:
решение как можно при коммите делать фото с веб камеры.

Чтобы максимально упростить решение задачи, я использовал библиотеку DirectShow .NET

Основной код консольного приложения:
Image image = Capture.GetImage();
image.Save(path, ImageFormat.Jpeg);
image.Dispose();


Настройки клиентов:
Я создал hook на событие Post-commit, т.к. мне хотелось добавлять к имени файла ревизию.


При запуске команды, автоматически добавляются аргументы. Для разных событий, разные аргументы.
Конкретно для события Post-commit аргументы следующие:
PATH DEPTH MESSAGEFILE REVISION ERROR CWD

В итоге получается что-то типа c:\temp\svn_134278_2012-07-17_13-54-46.jpg



Путь и формат файла каждый может настроить под себя.
Для TortoiseGit настройки практически идентичны:


На моем железе время работы программы около 00:00:03.3676868
before INIT 00:00:00.0000007
before CaptureImage 00:00:00.3365297
before CloseInterfaces 00:00:02.3431425
before Clone 00:00:03.3188398
before save 00:00:03.3235840
end 00:00:03.3676868

Естественно использовать webcam-snap.exe можно и для любых других целей.
В дальнейшем имеющиеся снимки можно склеить, например, в видео. Пример не прикрепил, т.к. пока у меня недостаточно фото коммитов ;)
GitHub
Теги:
Хабы:
Всего голосов 24: ↑14 и ↓10+4
Комментарии5

Публикации