PicHoro 开源手机图片上传+管理软件 手机端的PicGo

发布于 2022-10-15  1305 次阅读


前言

十一在家的时候,由于一个小的需求,需要把手机拍照的图片传到图床上写博客用,而且最好能边拍边传,传完后自动复制好多个图片的链接,找了找没有太符合需求的,于是自己趁着假期从头学习Flutter写了一个手机端软件,参考电脑端PicGo的功能设计,写出了PicHoro并在Github上开源~Github地址:https://github.com/Kuingsmile/PicHoro

PicHoro从10月2号的V1.00版本,到今天已经更新到了V1.75版本下载地址,这个过程中感觉自己对Flutter算是学了个皮毛了,同时对REST API也理解的更加深刻了,也算是一个小的成长吧。

下面就简单介绍下PicHoro~

PicHoro的界面和功能

PicHoro的基本功能和PicGo相同,简单点来说就是图片上传到图床和图片的管理,并且可以复制链接。PicHoro目前支持的图床有:

  • [x] 兰空图床V2 (V1.00版本添加)
  • [x] SM.MS(V1.41版本添加) 图床网站https://smms.apphttps://sm.ms
  • [x] Github(V1.55版本添加) 使用Github仓库作为图床
  • [x] Imgur(V1.60版本添加) 需要配合一些特殊方法使用
  • [x] 七牛云存储(V1.65版本添加) 七牛云存储
  • [x] 腾讯云COS V5(V1.70版本添加) 腾讯云COS V5
  • [x] 阿里云OSS(V1.75版本添加) 阿里云OSS
  • [x] 又拍云存储(V1.75版本添加) 又拍云存储

PicHoro的特殊功能包括:

  • 连续上传模式,相机拍照后自动上传然后返回拍照页面,可连续拍照上传(就是我一开始的那个小需求~)
  • 可导入剪贴板中的网络图片链接,同时使用换行符分割多个链接可批量导入
  • 相册分图床显示,支持多选管理,复制多张图片链接或删除
  • 相册删除时可选择是否同时删除服务器上的图片,以及选择是否删除本地图片
  • 支持扫描二维码将PicGo(v2.3.0-beta.2以上版本)配置文件直接导入PicHoro
  • 支持将PicHoro的配置导出至剪贴板,导出格式与PicGo配置文件相同,可直接导入PicGo
  • 上传图片后自动复制链接到剪贴板,多图上传时全部复制,支持的链接格式包括Markdown,带链接的Markdown,BBcode,HTML,原始链接和自定义链接
  • 支持自定义复制到剪贴板的链接格式,占位符与Picgo一致
  • 上传时可对文件重命名,目前有时间戳,随机字符串和自定义重命名三种方式,自定义重命名可使用多种占位符,如uuid,时间戳,md5等

下面来分别看下界面~

上传界面

上传界面里,连续上传就是刚才提到的排照后自动上传然后返回拍照功能,网络多选可以读取剪贴板内的网络图片链接(如果是用换行符分隔的多个链接的话,会全部读取),同时屏幕中的PicHoro软件图标会在有图片等待上传的时候显示第一张待上传图片的缩略图,上传完又回到Logo~

右下角的浮动图标可以快捷的切换需要默认的上传图床~

相册界面

相册页面里,点击图片会进入预览界面,双击会自动复制默认格式的链接到剪贴板,长按则会弹出选择菜单来复制指定格式的链接。同时右上角有选择框,可以多选操作。
相册页面下方中间的四个按钮分别对应了切换显示的图床,返回相册第一页,复制所有选定图片的链接和选择所有图片,右上角图标则可以删除所有选定的图片。

配置页面

配置页面里,包括了许多自定义配置选项,包括从二维码导入PicGo的配置,导出Json格式的配置文件到剪贴板,设置删除的时候是否同步删除云端和本地图片,自定义复制的链接的格式和文件上传的时候重命名的格式等。

吐槽

整个软件的开发过程中,写的最就的应该就是相册页面了,搞了好久才搞明白怎么实现,其它的各种图床的功能添加基本上是查阅各家的API文档来实现就行了。
但这里我一定要吐槽下,七牛云和又拍云的API文档是真的emmmm,七牛的删除文件方法,文档里写个POST请求,实际我试了应该是DELETE请求,然后又拍云的整个界面和文档各种简陋。阿里云的啰里啰嗦,体验最好的应该是腾讯云的,不仅写的比较清楚,而且还有在线的API调试工具,可以对照着来实现代码。
最后希望大家可以多多给提提意见啦,毕竟是刚学了两周的Flutter新手,很多都是现学现用的,后续我也会持续的更新PicHoro这个项目~