FireShotGo
Проект: краткое описание
FireShotGo — это кроссплатформенное приложение для создания снимков экрана, реализованное с использованием fyne.
Для тех, кто не знаком с fyne, на сайте fyne club есть подробные документы и соответствующий исходный код для каждого раздела.
Онлайн-документация: FireShotGoDoc.
Подробное руководство: fyne club.
Установка
Linux
В Linux необходимо установить библиотеку gtk и зависимые библиотеки.
На Ubuntu можно использовать следующую команду для установки:
sudo apt-get install libappindicator3-dev -y
sudo apt-get install libgtk-3-dev
Windows
На Windows необходимо настроить среду MinGW и конфигурацию для разработки на языке Go. Если вы хотите удалить консоль, которая появляется во время выполнения на Windows, вам нужно указать параметр при компиляции:
go build -ldflags -H=windowsgui
Использование библиотек
Убедитесь, что версия вашего локального SDK Go — 1.16 или выше, иначе поддержка //go:embed не будет работать.
Чтобы использовать библиотеку, просто выполните команду go get gitee.com/andrewgithub/FireShotGo, и исходный код будет установлен на вашем компьютере. Для локальной разработки вы можете напрямую использовать git для извлечения из репозитория.
История версий
v1.0.0
Основные функции, включая базовые возможности создания скриншотов, рисование стрелок и эллиптических меток, а также добавление текста.
Потребление ресурсов: на восьмиъядерном компьютере с Ubuntu использование CPU составляет примерно 5,9.
v1.0.1
Добавлены комментарии на китайском языке. Эта версия не содержит новых функций, основное внимание уделяется добавлению комментариев на китайском языке и переносу проекта на платформу Gitee для удобства дальнейшей разработки в команде.
Конкретный способ использования китайских шрифтов заключается в загрузке шрифта и использовании инструмента fyne для генерации статического файла ресурсов. Затем файл ресурсов возвращается через интерфейс темы Font.
v1.0.2
Поддержка китайского языка, все заголовки отображаются на китайском.
Переключение на левую панель состояния, более соответствующую привычкам использования у китайских пользователей.
Пример использования китайских шрифтов:
fyne bundle xxxxx.ttf > bundle.go
Например, мы используем китайские шрифты для реализации темы здесь:
package firetheme
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/theme"
"image/color"
)
type ShanGShouJianSongTheme struct{}
//var _ fyne.Theme = (*ShanGShouJianSongTheme)(nil)
// Font возвращает имя шрифта
func (m ShanGShouJianSongTheme) Font(s fyne.TextStyle) fyne.Resource {
return resourceShangShouJianSongXianXiTi2Ttf
}
func (*ShanGShouJianSongTheme) Color(n fyne.ThemeColorName, v fyne.ThemeVariant) color.Color {
return theme.DefaultTheme().Color(n, v)
}
func (*ShanGShouJianSongTheme) Icon(n fyne.ThemeIconName) fyne.Resource {
return theme.DefaultTheme().Icon(n)
}
func (*ShanGShouJianSongTheme) Size(n fyne.ThemeSizeName) float32 {
return theme.DefaultTheme().Size(n)
}
v1.0.3
Поддержка рисования прямых линий одинаковой ширины.
v1.0.4
Поддержка ввода текста на китайском языке.
v1.0.5
Поддержка захвата определённого экрана.
Вы можете выбрать экран, начиная с номера 1, например, 1 для основного экрана и 20 для дополнительного экрана. В настоящее время поле ввода ограничено только вводом 1 или 2. Если у вас есть дополнительные пользователи с двумя экранами, вам необходимо изменить регулярное выражение в следующем коде, чтобы разрешить ввод 3 для поддержки третьего экрана:
selectEntry.Validator = validation.NewRegexp(`[1,2]`, "1 or 2 screen")
Если ввести номер экрана больше 3, появится сообщение об ошибке.
v1.0.6
Поддерживает настройку тем, но в настоящее время после настройки темы приложение не обновляется динамически, требуется перезапуск. На данный момент поддерживается только функция, поддержка динамического изменения темы шрифта будет добавлена позже.
v1.0.7
Поддерживается облачное хранилище, Google Cloud и Qiniu Cloud. Снимки экрана делаются в реальном времени и загружаются в облако. В настоящее время поддерживается только формат PNG, в будущем планируется поддержка различных форматов изображений.
Qiniu Cloud позволяет сохранять скриншоты непосредственно в облаке, обеспечивая удобство просмотра и хранения информации в будущем.
v1.0.8
Поддерживаются пунктирные линии.
v1.0.9
Можно настроить интервал между пунктирными линиями.
v1.0.10
Добавлена функция блока затенения, которую можно использовать для затенения определённых областей на снимке экрана. Цвет можно настроить в блоке цвета, перетащив мышью после нажатия левой кнопки мыши.
v1.0.11
Добавлена прямоугольная функция для выделения важных частей снимка экрана. Цвет настраивается в блоке цвета. После нажатия левой кнопкой мыши можно перетащить мышью.
v1.0.12
Добавлена функция рисования карандашом. Текущая реализация использует один поток, производительность относительно низкая, планируется перенести вычисления в отдельный поток для повышения скорости рисования.
Присоединяйтесь к нам
Если вы интересуетесь языком Go или хотите изучить программирование GUI с Fyne, присоединяйтесь к нашему сообществу!
Сканируйте QR-код, чтобы присоединиться к сообществу разработчиков FireShotGo и вместе учиться и развиваться!
TODO
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )