[TOC]
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
使用库
请确保本地的go的SDK
版本是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时主屏幕,序号二十分屏幕,因为多余两个屏幕的没发验证,目前输入框中限定只能输入1或者2,如果有多余两个屏幕的使用者需要将如下代码中正则匹配放开限制,比如将[1,2] – > [1-3]支持3号屏幕
selectEntry.Validator = validation.NewRegexp(`[1,2]`, "1 or 2 screen")
目前当输入屏幕序号大于3时将报错
V1.0.6
支持主题字体设置,但是目前主题字体设置之后,不能动态刷新,需要重启应用程序,目前先支持功能,后期支持动态的更改主题字体大小
V1.0.7
支持云存储,谷歌云和七牛云,事实截取图片,实时上传图片,目前仅支持png图片后期放开图片类型的选择,可以支持多种图片编码格式
支持七牛云,让截取的图片直接上上云,随时截取,随时保存到云盘,方便后期查看于信息记录记录
v1.0.8
支持虚线功能
v1.0.9
虚线间隔支持设置
v1.0.10
增加遮挡块功能,可以使用遮挡块对需要遮挡的地方进行遮挡,颜色可以在颜色块中进行设置,左键电击之后使用鼠标进行拖拽即可
v1.0.11
增加矩形框功能,用于框住截图中的重点信息,颜色可以在颜色块中进行设置,左键电击之后使用鼠标进行拖拽即可
v1.0.12
增加画笔功能,目前是使用单协程实现,性能比较差,后期间计算单独协程中进行,提升出图的速度
加入我们
如果对go语言感兴趣或者想要学习go语言Fyne
gui
编程的可以添加微信!
扫描二维码,拉你进入FireShotGo
开发大家庭,一起学习,一起进步!
TODO
- 支持中文
- 支持直线绘制
- 支持等宽直线绘制
- 支持指定需要截屏的屏幕
- 支持叠加中文文本
- 支持对主题字体设置
- 支持云存储-谷歌云、七牛云
- 主题字体支持动态更改
- 支持虚线绘制
- 支持虚线间隔设置
- 支持矩形框功能
- 支持鼠标截图功能
- 支持选择屏幕功能
- 支持多种字体
- 支持多种字体的中文文本叠加