使用Alfred + Gitee搭建免费图床

news2024/9/21 4:30:49

环境

系统: Mac
工具: Alfred, git, homebrew, pngpaste.
语言: perl
其他: Gitee

工具下载

https://gitee.com/serpmelon/inazuma

思路

使用Gitee仓库作为图床, 使用Alfred工作流简化上传图片流程, 并将上传图片地址转换为markdown格式输出到剪切板中.

使用

复制一张图片, 然后使用快捷键CMD + shift + u或者唤出Alfred命令行输入pp.
上传成功后会发送通知提示上传成功.

实现

创建Gitee图床环境

注册账号, 创建仓库, 注意修改为公共仓库, 把仓库拉到本地, 以后会将目标图片复制到仓库中. 其他没什么说的.

复制剪切板中的图片到指定路径

遇到的第一个难题, 如何将剪切板中的图片复制到指定目录下呢(git目录)? pbcopy和pbpaste命令只能操作文本, 所以第一个想法, 复制图片的路径, 这样就可以通过操作文本进行赋值操作.

对图片使用cmd+option+c会复制其路径, 然后通过执行cp命令将文件复制到指定目录中.

system("cp $source $target");

但是, 这样很不方便, 而且通常情况下都是截一个图片沾到自己的文章中, 如果只能通过路径复制, 那么每次截图还需要下载到本地. 所以需要实现将剪切板中的图片文件复制到目录的功能.

使用pngpaste工具实现上述功能, 使用homebrew下载

brew install pngpaste

使用简单

pngpaste hooray.png # 目标文件

参考 https://github.com/jcsalterego/pngpaste

本地运行正常, 但是在Alfred中运行异常, 排查发现是找不到pngpaste命令. Alfred运行脚本不会使用用户的运行环境, 所以找不到第三方命令, 解决办法就是我们帮它找到命令, 使用全路径就可以拉, 路径配置到Alfred变量中.

system("$PASTE_DIC/pngpaste $target");

git命令提交图片

图片已经复制到git本地仓库了, 然后只需要push上去就好了.

system("cd $GIT_DIC; git add .;git commit -m 'pic';git push");

拼接图片地址

浏览下Gitee上图片的地址, 类似这样
https://gitee.com/serpmelon/pictures/blob/master/20230102/1672643597serpmelon15714.png
将blob换成raw就可以访问了, 修改后:
https://gitee.com/serpmelon/pictures/raw/master/20230102/1672643597serpmelon15714.png

然后按照markdown格式拼接地址后:

![](https://gitee.com/serpmelon/pictures/raw/master/20230102/1672643597serpmelon15714.png)

A

问题

  1. 图片过大问题, 实际使用过程中发现图片已经上传但是就是无法显示, 最后发现是图片过大, 无法展示, 这个应该是Gitee的限制, 比如下面这个链接对应的图片3.6M就无法显示.
![](https://gitee.com/serpmelon/pictures/raw/master/20230102/1672646592serpmelon10602.png)

image

所以为了能正常显示需要对图片进行一个压缩处理, 目前调研了部分工具可以实现图片的压缩, 但是本来就是一个简单的图床工具还需要用户自己下载各种工具? 所以压缩功能打算自己后面实现一个.

  1. 同上面的问题, 使用本工具需要用户自己下载pngpaste, 这个也打算自己实现下.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/134960.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

植物大战僵尸:无冷却分析方法

植物大战僵尸这款游戏可以说是很多90后的回忆了,基本上只要是90后或多或少的都接触过,而玩游戏与制作辅助是两个概念,今天我将给大家分享一些游戏辅助方面的制作技巧,来供大家参考。 植物无冷却的实现 根据上节课查找太阳花生产…

基于springboot+Vue的社团管理系统(程序+文档+数据库)

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

(02)Cartographer源码无死角解析-(44) 2D栅格地图→ProbabilityGrid

讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/127350885 文末…

win10系统如何找回删除文件?教你五种恢复方法

在使用win10系统过程中,意外删除数据是经常发生的事情,那么win10系统如何找回删除文件呢?下面为大家总结了这五种win10文件误删除恢复方法,希望能够帮助到您。 ▍方法一、 ctrlz撤销法 ctrlz撤销法十分适用于恢复刚刚删除的文件…

绘图神器draw.io(写文必备)

绘图神器draw.io(写文必备) 前言 大家早上好,我是毛小悠,一个前端开发工程师。 最近发现一个绘图神器,没错,就是标题中的draw.io。免费、开源,功能强大,真的非常适合程序员。 我…

NSGA-II:快速精英多目标遗传算法(论文+代码解读)

目录 1.介绍 2. NSGA-II 2.1 快速非支配排序 2.1.1 NSGA的传统非支配排序 2.1.2 NSGA-II的快速非支配排序 2.2 多样性保护(Diversity Preservation) 2.2.1 NSGA的共享函数方法(sharing function) 2.2.2 NSGA-II的拥挤距离方法(crowded-comparison) 2.3 NSGA-II主循环…

4类时钟分频【附源码】1.偶数分频;2.奇数分频(占空比50%);3.奇数分频(任意无占空比);4.小数分频;

题目来源于牛客网,完整工程源码:https://github.com/ningbo99128/verilog 目录 VL37 偶数分频 VL40 奇数分频(占空比50%) VL42 奇数分频(任意无占空比) VL41 任意小数分频 VL37 偶数分频 题目介绍 请…

【阶段二】Python数据分析NumPy工具使用04篇:数组常用分析函数、数组广播与数组和矩阵的点积运算

本篇的思维导图: 数组常用分析函数 基本数学函数 函数 描述 abs 求取每个元素的绝对值

1-计算机系统概述

文章目录一.操作系统的基本概念(一)操作系统的特征(二)操作系统的目标和功能二.操作系统的发展与分类(一)手工操作阶段(二)批处理阶段(三)分时操作系统&#…

verilog学习笔记- 1)Quartus软件的使用

目录 新建工程: 设计输入: 配置工程: 编译 : 分配引脚: 编译工程: 下载程序: 固化程序 : 在开始使用 Quartus 软件之前,我们先来了解一下 Quartus 软件的使用流程…

Windows10 下的docker和Kubernetes安装

Docker官网Docker Desktop 安装 Docker官网 进入docker官网,下载windows版 docker desktop建议使用win10专业版在任务管理器查看是否开启了windows虚拟化如果没有开启,则在控制面板,启用或关闭windows功能,勾选Hyper-v&#xff…

面向对象1(类的成员变量的默认值规则、private、this、构造方法、基本数据类型和引用数据类型)

1、定义类的注意事项 类的成员变量的默认值规则 2、private 3、this关键字 语法是this. 4、构造方法 先Constructor生成构造方法,select无参构造,Ctrla全参构造 再Getter and Setter生成每个成员变量的getter 和 setter方法 也可以使用插件右键Ptg To …

java开发的美食菜谱网

简介 Java开发美食菜谱分享网站,健康专题分享,菜谱网源码。用户可以发布菜谱,可以评论,可以发布关于健康饮食的文章,还可以查看自己的主页。管理员可以管理所有的数据,审核数据。 演示视频 https://www.b…

ROS机器人底盘坐标像素变换

对于ROS小车底盘地图数据需要知道的点 1.整幅地图处于第三象限 2.坐标值代表距离,单位米。 3.分辨率单位(米/像素) 因此通过地图坐标得到像素坐标的办法: 像素坐标(实时坐标-初始坐标)/分辨率 实时坐标的获取: 触发条…

20230102单独编译Toybrick的TB-RK3588X开发板的Android12的内核【失败】

20230102单独编译Toybrick的TB-RK3588X开发板的Android12的内核【失败】 现阶段已经验证通过的编译指令: 直接使用build.sh编译了。 rootrootrootroot-adol-ADOLBOOK-I421UAY-ADOL14UA:~/toybrick3588_discrete$ source build/envsetup.sh rootrootrootroot-adol-A…

windows下编译opencv_contrib

文章目录基本环境二. 准备1. 下载所需各软件的安装文件2. 安装所需软件三.编译opencv步骤基本环境 cmaker:3.22.0vs2019:16.11.10CUDA:11.4.1cudnn:8.2.4opencv_source:4.5.4opencv_contrib:4.5.4python&a…

给程序员友人,2022投资总结的6000字评论

程序员友人的2022投资总结 以下是我的评论、回复。 友情提示:不好意思,长篇大论了,先长篇铺垫,再到正题。 下午说道:以我的最新投资原则方法,对你的持股情况,略显忧虑。 “一直放心不下”&#…

Ubuntu 18.04使用CMake编译可执行文件、动态链接库

目录准备新建文件编辑源文件编译生成可执行文件编译生成动态链接库准备 新建文件 在开始之前,我们先准备一个项目所需要的基本结构。 新建一个项目的文件夹test_so在项目文件夹中新建一个src文件夹存放源代码(并新建一个test.cpp文件)&…

基于 Prometheus 的监控平台简介

1. Prometheus 体系架构简介 Prometheus 是 CNCF 基金会的一款开源产品,主要用做监控系统,通常用来和 Zabbix 等监控系统做比较,以其简单易用、架构灵活著称。整个 Prometheus 的架构如上,分为几个重要的部分: 指标收…

Kubernetes:Ingress

文章目录1、安装 Ingress 控制器2、Ingress 扇出3、基于名称的虚拟托管4、Ingress TLSIngress 是一组路由规则,公开从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 Ingress 控制器是一组 pod,负责通过负载均衡器来解析 Ingress 路由规则,将请…