1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/andrewgithub-FireShotGo

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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

  • Поддержка китайского языка
  • Поддержка рисования линий
  • Поддержка рисования равноширинных линий
  • Возможность выбора экрана для захвата
  • Поддержка наложения китайского текста
  • Настройка темы
  • Облачное хранилище (Google Cloud, Qiniu Cloud)
  • Динамическая настройка темы
  • Пунктирные линии
  • Регулировка интервала между пунктирами
  • Функция блока затенения
  • Прямоугольная функция
  • Выбор экрана
  • [ ]

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Реализация функции скриншота с использованием библиотеки Fyne на языке Go. Развернуть Свернуть
Go
Apache-2.0
Отмена

Обновления (9)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/andrewgithub-FireShotGo.git
git@api.gitlife.ru:oschina-mirror/andrewgithub-FireShotGo.git
oschina-mirror
andrewgithub-FireShotGo
andrewgithub-FireShotGo
main