Pull to refresh

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

Reading time1 min
Views2K
Приятного времени суток!

Ох, жуть как зацепила статья 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
Tags:
Hubs:
Total votes 24: ↑14 and ↓10+4
Comments5

Articles