基于Quicker構建從截圖到公網圖像鏈接獲取的自動化流程

寫在前面:本博客僅作記錄學習之用,部分圖片來自網絡,如需引用請注明出處,同時如有侵犯您的權益,請聯系刪除!


文章目錄

  • 前言
  • 預備內容
  • 轉webp程序
  • PicGo設置
  • Quicker設置
  • 視頻演示
  • 總結
  • 互動
  • 致謝
  • 參考


前言

在自建博客網站中,頁面中圖片過大對響應時間的影響非常顯著:大尺寸圖片文件體積通常可達數MB,而優化后的圖片可能僅需幾十KB。未壓縮的3MB圖片與優化后的100KB圖片相比,傳輸時間在5Mbps帶寬下相差近25秒。頻繁的大圖片請求會增加服務器I/O負載,尤其在流量高峰期,可能觸發服務器限流或宕機。直接導致轉化率下降40%。

對于用戶來說,頁面加載時間每增加1秒,跳出率提升12%。用戶對大圖片導致的緩慢加載缺乏耐心,尤其移動端用戶更傾向于快速離開。SEO排名受損,搜索引擎將頁面速度納入排名算法,大圖片會降低頁面速度得分。

因此通常可以使用壓縮工具,在保持視覺質量前提下壓縮圖片(如將PNG轉為WebP格式可減少30%體積),加快網站的響應,避免用戶長時間的等待。

但實際上有著很多的在線工具、軟件和插件,如 Plus WebP插件、 caesium、cdkm,有免費的也有收費的。要么收集圖像后批量轉換,或者一張張轉化,相對繁瑣。插件通常只能處理媒體庫中的圖像,在實際編寫文章的過程里很麻煩。

因此本文旨在自己編寫程序實現格式轉化的同時上傳到圖床的,實現從獲取圖像到返回公網可訪問的圖像鏈接的自動化流程。

在這里插入圖片描述


預備內容

  • Minio圖床:提供對象存儲
  • 公網訪問鏈接:cploar內網穿透,cpolar推薦鏈接
  • PicGo:快速上傳
  • 格式轉化程序:自行編寫
  • 自動化流程:Quicker

Quicker安裝就不說了,直接安裝就是,圖床相關的內容之前有過博客介紹,不重復贅述,可參考下列鏈接:

【本地圖床搭建】寶塔+Docker+MinIO+PicGo+cpolar:打造本地化“黑科技”圖床方案
【本地MinIO圖床遠程訪問】Cpolar TCP隧道+PicGo插件,讓MinIO圖床一鍵觸達


轉webp程序

先看眼對應的依賴:

  • python=3.7
  • Pillow=9.5.0
  • pywin32=308
  • argparse
  • pyinstaller

筆者創建了新環境進行安裝,conda create -n envs_name python=3.7

程序簡單不多說,只需要知道pywin32是為了對粘貼板進行操作即可。

#!bin/bash
# name: main.pyfrom io import BytesIO
from os import remove as osremove
from PIL import Image
import win32clipboard
from argparse import ArgumentParserdef get_image(args):# 使用粘貼板的圖像if args.clipboard:try:win32clipboard.OpenClipboard()# 粘貼板圖像可得if win32clipboard.IsClipboardFormatAvailable(win32clipboard.CF_DIB):data = win32clipboard.GetClipboardData(win32clipboard.CF_DIB)win32clipboard.CloseClipboard()# 將DIB數據轉換為PIL圖像stream = BytesIO(data)img = Image.open(stream)return img# 粘貼板圖像不可得else:win32clipboard.CloseClipboard()return Noneexcept Exception as e:print(e)return None# 使用圖片文件else:return Image.open(args.file)def save_image(image, args):try:image.save(f"tmp.webp", format="webp", QUALITY=args.quality)return Trueexcept Exception as e:print(e)return Falsedef main():# 參數說明parser = ArgumentParser()parser.add_argument('--clipboard', '-c', type=bool, default=True, help="convert clipboard image to webp")parser.add_argument('--quality', '-q', type=int,default=80, help="Compression ratio,100 means lossless compression")parser.add_argument('--file', '-f', type=str, default='./test.png', help="path of the image")args = parser.parse_args()# 嘗試移除臨時文件try:osremove("dist/tmp.webp")except Exception as e:pass# 獲取圖像img = get_image(args)if img is None:print("剪貼板中沒有找到圖像!")returnwebp_img = img.copy()save_image(webp_img, args)if __name__ == "__main__":main()

為了方便Quicker,在編寫成功后也進行了打包,后面也會直接給出鏈接,沒有環境也不用擔心。.

打包方法:pyinstaller --onefile --windowed main.py,打包好的.exe,點擊下載

上述代碼的參數有三個:

① --clipboard:將粘貼板上的圖像進行轉webp格式
② --quality:壓縮比例,100默認不壓縮
③ --file:將特定的圖像進行進行轉webp格式,當且僅當clipboard為否的情況下生效

批量處理的邏輯,可自行擴展,不難的。


PicGo設置

PicGo在2.2.0版本開始內置了一個小型的服務器,用于接收來自其他應用的HTTP請求來上傳圖片。

默認監聽地址: 127.0.0.1,默認監聽端口:36677

更多上傳方式:PicGo-Server的使用

在這里插入圖片描述

由于防止過多的臨時文件,因此設置了轉化后的文件名字是固定的,因此上傳時候需要重命名,建議時間戳,不重復。

在這里插入圖片描述


Quicker設置

新建動作:大致有幾個步驟,運行截圖,將截圖內容寫入粘貼板,調用打包程序轉化格式,進一步的讀取該轉化文件,并通過PicGo-Server上傳到對應的圖床。

下面對其的每個部分進行截圖說明:

  • 運行動作
    在這里插入圖片描述

  • 等待粘貼板內容改變
    在這里插入圖片描述

  • 運行打包程序,保存轉化后的圖像在這里插入圖片描述

  • 等待時間,等待打包程序結束
    在這里插入圖片描述

  • 將保存的圖像放入粘貼板在這里插入圖片描述

  • HTTP請求,使用PicGo著圖床上傳
    在這里插入圖片描述


視頻演示

Quicker截圖上傳圖床演示視頻


總結

總結: 本文通過Quicker串聯動作,實現從截圖到返回公網可訪問的圖像鏈接的自動化流程。


互動

  • 上述內容對你有用嗎?

歡迎在評論區解答上述問題,分享你的經驗和疑問!

當然,也歡迎一鍵三連給我鼓勵和支持:👍點贊 📁 關注 💬評論 💰打賞。


致謝

欲盡善本文,因所視短淺,怎奈所書皆是瞽言蒭議。行文至此,誠向予助與余者致以謝意。


參考

[1] cpolar推薦鏈接
[2] Quicker
[3] https://saerasoft.com/caesium/
[4] https://cdkm.com/cn/jpg-to-webp
[5] 【本地圖床搭建】寶塔+Docker+MinIO+PicGo+cpolar:打造本地化“黑科技”圖床方案
[6] 【本地MinIO圖床遠程訪問】Cpolar TCP隧道+PicGo插件,讓MinIO圖床一鍵觸達
[7] PicGo-Server的使用

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83621.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83621.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83621.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python Requests庫完全指南:從入門到精通

引言 在Python的生態系統中,requests庫以其簡潔優雅的API設計和強大的功能,成為HTTP請求處理領域的標桿工具。無論是數據爬蟲開發、API接口調用,還是自動化測試場景,requests都能將復雜的網絡交互簡化為幾行可讀性極高的代碼。相…

滲透測試核心技術:內網滲透與橫向移動

內網滲透是紅隊行動的關鍵階段,攻擊者通過突破邊界進入內網后,需快速定位域控、橫向移動并維持權限。本節從內網環境搭建、信息收集、橫向移動技巧到權限維持工具,系統講解如何在內網中隱蔽行動并擴大戰果。 1. 內網環境搭建與基礎配置 目標: 模擬真實企業網絡,構建包含…

學習FineBI

FineBI 第一章 FineBI 介紹 1.1. FineBI 概述 FineBI 是帆軟軟件有限公司推出的一款商業智能 (Business Intelligence) 產品 。 FineBI 是新一代大數據分析的 BI 工具 , 旨在幫助企業的業務人員充分了解和利用他們的數據 。FineBI 憑借強…

CSS 浮動(Float)及其應用

1. 什么是浮動(Float)? 浮動元素會脫離正常的文檔流(Document Flow),并向左或向右移動,直到碰到父元素的邊緣或另一個浮動元素。 基本語法 .float-left {float: left; }.float-right {float:…

二分算法的介紹簡單易懂

目錄 1.概論 2.樸素的二分算法 3.求左端點的二分算法和求右端點的二分算法 4.總結 1.概論 要想了解什么是二分算法,我們就要知道什么是二分算法,二分算法是根據數組的規律,每次查找的數據原來的效率可能要O(n),而我…

ROS2學習(3)------架構概述

操作系統:ubuntu22.04 IDE:Visual Studio Code 編程語言:C11 ROS版本:2 ROS 2(Robot Operating System 2)的設計旨在提供一個靈活、可擴展且高效的框架,用于編寫復雜的機器人軟件。它引入了發布者/訂閱者&…

墨水屏顯示模擬器程序解讀

程序如下&#xff1a;出處https://github.com/tsl0922/EPD-nRF5?tabreadme-ov-file // GUI emulator for Windows // This code is a simple Windows GUI application that emulates the display of an e-paper device. #include <windows.h> #include <stdint.h>…

【技海登峰】Kafka漫談系列(十一)SpringBoot整合Kafka之消費者Consumer

【技海登峰】Kafka漫談系列(十一)SpringBoot整合Kafka之消費者Consumer spring-kafka官方文檔: https://docs.spring.io/spring-kafka/docs/2.8.10/reference/pdf/spring-kafka-reference.pdf KafkaTemplate API: https://docs.spring.io/spring-kafka/api/org/springframe…

【言語理解】邏輯填空之邏輯對應11

front&#xff1a;詞義辨析 11.1前后解釋對應 填空的詞匯大意可能是吖要結合實際情況不要一味高估導致適得其反的結果 未雨綢繆&#xff1a;趁著天沒下雨&#xff0c;先修繕房屋門窗。比喻事先做好準備工作&#xff0c;預防意外的事發生。&#xff08;提前做好準備&#xff0c…

ubuntu上 opencv + eclipse + C++

ubuntu上 opencv eclipse C 1. 安裝eclipse 安裝eclipse不用說了&#xff0c;前置條件要安裝java 配置快捷鍵方式 2. 新建c項目 配置opencv環境 project -> properties: 配置c標準庫版本&#xff1a; 配置opencv頭文件&#xff1a; 配置opencv庫文件&#xff1a;…

動態內存管理2+柔性數組

一、動態內存經典筆試題分析 分析錯誤并改正 題目1 void GetMemory(char *p) {p (char *)malloc(100); } void Test(void) {char *str NULL;GetMemory(str);strcpy(str, "hello world");printf(str); } int main() {Test();return 0; }錯誤的原因&#xff1a; …

AI寫PPT可以用嗎?我測試了3款AI寫PPT工具,分享感受

上周五臨下班&#xff0c;領導突然讓我周末趕出一份季度營銷報告 PPT&#xff0c;還要求周一晨會展示。看著空蕩蕩的 PPT 頁面&#xff0c;我滿心都是絕望 —— 周末不僅泡湯&#xff0c;搞不好還得熬夜到凌晨。好在同部門的前輩給我推薦了幾款 AI 寫 PPT 工具&#xff0c;沒想…

PrimeVul論文解讀-如何構建高質量漏洞標簽與數據集

目錄 1. 引入2. 現有漏洞識別方案的不足2.1 數據集中label不準2.2 數據重復2.3 測評標準不夠好 3. 現有漏洞識別數據集分析3.1 關于現有數據集中label的準確率分析3.2 關于現有數據集中數據泄露&#xff08; Data Leakage&#xff09;情況分析 4. 漏洞識別測評5. PrimeVul數據集…

關于數據湖和數據倉的一些概念

一、前言 隨著各行業數字化發展的深化,數據資產和數據價值已越來越被深入企業重要發展的戰略重心,海量數據已成為多數企業生產實際面臨的重要問題,無論存儲容量還是成本,可靠性都成為考驗企業數據治理的考驗。本文來看下海量數據存儲的數據湖和數據倉,數據倉庫和數據湖,…

linux-----------------庫制作與原理(下)

1.ELF文件 要理解編譯鏈鏈接的細節&#xff0c;我們不得不了解?下ELF?件。其實有以下四種?件其實都是ELF?件&#xff1a; ? 可重定位?件&#xff08;Relocatable File &#xff09; &#xff1a;即 xxx.o ?件。包含適合于與其他?標?件鏈接來創 建可執??件或者共享…

python-爬蟲基礎

爬蟲本質&#xff1a;通過編寫程序來獲取到互聯網上的資源。 我們的程序本質上就是模擬瀏覽器 一個簡單的小爬蟲&#xff1a; 只需要三步&#xff1a; from urllib.request import urlopen #url是網址&#xff0c;request意思是請求 這里跑出來的中文是這樣的注意看&#…

單元化架構

目錄 ????????編輯 單元化 邏輯單元 單元化 多地多機房部署&#xff0c;是互聯網系統的必然發展方向&#xff0c;一個系統要走到這一步&#xff0c;也就必然要解決上面提到的問題&#xff1a;流量調配、數據拆分、延時等。業界有很多技術方案可以用來解決這些問題&…

【免殺】C2免殺技術(五)動態API

一、什么是動態API 在C2免殺領域中&#xff0c;“動態API” 主要指的是繞過靜態檢測的一種技術手段&#xff0c;其本質是運行時動態解析和調用Windows API函數&#xff0c;而不是在程序編譯階段就明確引用這些API。這種方式可以有效躲避靜態分析工具和殺軟的簽名識別。 為什么…

Python爬蟲實戰:研究JavaScript壓縮方法實現逆向解密

一、引言 在數字化信息爆炸的時代,網絡數據已成為驅動各行業發展的核心資產。Python 憑借其豐富的庫生態和簡潔的語法,成為網絡爬蟲開發的首選語言。然而,隨著互聯網安全防護機制的不斷升級,網站普遍采用 JavaScript 壓縮與混淆技術保護其核心邏輯和數據傳輸,這使得傳統爬…

HTTP 請求走私(HTTP Request Smuggling)

HTTP 請求走私&#xff08;HTTP Request Smuggling&#xff09;是一種通過利用前端代理&#xff08;如負載均衡器、CDN&#xff09;和后端服務器在 解析 HTTP 請求時存在不一致性 的漏洞&#xff0c;從而實現 注入惡意請求 的攻擊技術。 一、基本原理 HTTP 請求走私主要依賴兩…