-Музыка

 -Поиск по дневнику

Поиск сообщений в _DOOMer_

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 19.10.2005
Записей:
Комментариев:
Написано: 18106


ScreenGrab - программа для снятия скриншотов

Понедельник, 17 Августа 2009 г. 03:25 + в цитатник
В рамках "целевой программы по изучению процесса разработки ПО с использованием тулкита Qt" моя скромная персона решила писать сабжевую тулзу.

Почему именно программа для получения скриншотов рабочего стола? В основном ради интереса к самому процессу создания кроссплатформенного программного обеспечеия. Ну и в некоторой степени из-за того, что среди мегатонн софта под Windows, подобной утилиты мне не попалось.

Точнее подобные вещи под винду есть, но... либо жутко неудобные в плане интерфейса, либо перегруженные функционалом (на кой демон мне встроенный графический редактор, если нужно только "засейвить" экран), либо и то и другое да ещё к тому же несвободно распространяемое. А использование нелицензионного софта как мы знаем - не есть правильное дело, с точки зрения господ Гейтса, Балмера, Джобса и иже с ними.


В *nix-системах с этим все граздо проще - подобные утилиты есть в составе любого десктопного окружения (gnome-screenshot, ksnapshot, xfce-screenshooter). А любители всевозможных легковесных WM используют "великий и могучий" консольный scrot и/или графические фронтэнды к нему.

Вот и пришла мне в черепную коробку идея сделать некий аналог того же KSnapshot для Windows. Конечно подобные утилиты желательно писать на чистом WinAPI, дабы уменьшить их размер и все такое прочее. Но..... последний раз "на апях" я кодил году в 2002\2003, ещё в студенческие времена. И уже тогда жутко материл Гейтса и людей придумаших WinAPI & MFC. А с возрастом вообще обленился, и сейчас меня наверное уже не заставить программировать используя эти вызовы системных функций винды с их кучей параметров, названия которых хрен запомнишь. Да и держать Visual Studio под виртуалной виндой - неесть правильное и хорошее решение.

Вообщем выбор мой пал на связку С++ & Qt, как на наиболее простой и удобный инструмент кроссплатформенной разработки ПО. Была ещё идея писать на Python, но как-то не сложилось у меня с этим языком программирования. Питон мне показался более сложным чем тот же C++ в плане освоения базовых вещей. Да и интерпретируемость для графических десктопных приложений - имхо, не совсем гуд.

И за несколько вечеров базовый функционал был написан. Нарисованс средней корявости интерфейс, вот только до локализации руки не дошли. Пока не дошли... =)

Название ScreenGrab я благополучно спёр позаимствовал у схожего по функциональность расширения для браузера FireFox.

Немного картинок (все кликабельно)


Основное окно программы.


"Полноэкранный" режим - на скрине как бы несколько копий утилиты, но на самом деле запущена всего одна =)

Скриншоты были сделаны в моей рабочей системе - ArchLinux & KDE. Но и в GNOME (Ubuntu 9.04) и в WindowsXP все выглядит ненамного хуже (а для кого-то наверное и лучше). Альтернативные скриншоты (но уже версии 0.2) можно увидеть здесь.

В качестве хранилища было решено использовать Google Code, для меня он более удобен, чем SourceForge (я так и не смог разобраться с их интерфейсом) или GitHub (Git как система контроля версий для меня до сих остаётся малопонятно, к сожалению).

Сссылки для скачивания
Ссылки на последнюю версию ScreenGrab

Основные фичи текущей стабильной версии 0.1:
* снятие скриншота с рабочего стола
* предварительный просмотр полученного изображения в окне программы
* сохранение полученного графического изображения в PNG-файл
* возможность снятия скриншота с задержкой до 90 секнуд (удобно, если необходимо сделать скрин с каким либо оконным меню)
* возможность скрытия окна программы при получении нового снимка экрана
* возможность минимизации в системный трей (убласть уведдомлений) и работа оттуда через контекстное меню
* блокирование запуска второй копии программы

В планах на версию 0.2 и дальше:
* написание документации (хотя интерфейс там вполне интуитивно понятен на мой взгляд)
* новые иконки - то что есть сейчас совершенно некошерно.. на мой взгляд (вот ещё бы найти того, кто мне сделает эти новые иконки)
* интернационализация (переводим все интерфейсные надписи на великий и могучий)
* конфигурирование некоторых параметров (надо ещё решить каких именно)
* возможность получения скриншота снимка не только всего рабочего стола, но и отдельного окна (а также отдельно взятой выделенной мышью области экрана).
* горячие клавиши (наверное даже настраиваемые), чтобы не возить лишний раз мышой по столу
* параметры командной строки (просто так, для разнообразия =))
* ... что-то ещё....

В колонках играет - Черный Обелиск - Пельменная [Live]
Рубрики:  Программерские будни
Софт
Метки:  



tew_lee   обратиться по имени Понедельник, 17 Августа 2009 г. 09:45 (ссылка)
а можно дурацкий вопрос?

пнг - это круто, но есть там хотя бы возможность jpg?
Ответить С цитатой В цитатник
tew_lee   обратиться по имени Понедельник, 17 Августа 2009 г. 09:48 (ссылка)
ага, нету.
Ответить С цитатой В цитатник
_DOOMer_   обратиться по имени Понедельник, 17 Августа 2009 г. 11:47 (ссылка)
tew_lee, пока нету. Но в следующих версиях будет =) Хотя по мне так jpg далеко не всегда есть гуд =)
Ответить С цитатой В цитатник
tew_lee   обратиться по имени Понедельник, 17 Августа 2009 г. 11:53 (ссылка)
а я не против, что пнг - это круто, эпично и все такое. просто не все ресурсы в сети поддерживают этот формат, и главная фишка (сфоткал-запостил) пропадает.
Ответить С цитатой В цитатник
_DOOMer_   обратиться по имени Понедельник, 17 Августа 2009 г. 12:10 (ссылка)
tew_lee, а какими ресурсами ты пользуешься, которые не поддерживают пнг?

Добавил поддержку jpg в TODO-list на версию 0.2.
Ответить С цитатой В цитатник
tew_lee   обратиться по имени Понедельник, 17 Августа 2009 г. 12:17 (ссылка)
хворумы всякие.
Ответить С цитатой В цитатник
Комментировать К дневнику Страницы: [1] [Новые]
 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку