前言
上次我用 C# + AOT 開(kāi)發(fā)了一個(gè) ICO 圖標(biāo)生成工具
這個(gè)實(shí)用小工具一經(jīng)發(fā)布就受到不少朋友的關(guān)注
最近還被做成了網(wǎng)站,有圖形化界面來(lái)一鍵生成 ico 圖標(biāo),更方便普通用戶(hù)的使用
這種 C# 開(kāi)發(fā),GitHub Actions 自動(dòng)化發(fā)布 nuget 包和 dotnet tool 的一站式體驗(yàn)非常好,以至于讓我對(duì)這種感覺(jué)有點(diǎn)上癮了
最近又陸續(xù)開(kāi)發(fā)了兩個(gè)類(lèi)似的工具,其中一個(gè)就是本文要介紹圖片處理工具。
項(xiàng)目開(kāi)源地址,歡迎 Star 和 PR : https://github.com/star-plan/image-glider
關(guān)于 ImageGlider
一開(kāi)始我開(kāi)發(fā)這個(gè)工具,只是為了實(shí)現(xiàn)把目錄中的 jfif 圖片批量轉(zhuǎn)換為 Windows 文件管理器能顯示縮略圖的 jpg 或者 png 格式。
不過(guò)在開(kāi)發(fā)過(guò)程中,發(fā)現(xiàn) C# 寫(xiě)小工具還真是方便,于是就慢慢增加了一堆功能。
接下來(lái)我還打算增加一個(gè)相似圖片識(shí)別功能。
以下是目前的項(xiàng)目介紹:
ImageGlider 是一個(gè)功能強(qiáng)大的跨平臺(tái)圖像處理工具套件,使用 C# (.NET 9) 和 ImageSharp 實(shí)現(xiàn)。項(xiàng)目采用模塊化架構(gòu)設(shè)計(jì),包含核心類(lèi)庫(kù)、命令行工具、Web API、示例程序和完整的單元測(cè)試,支持 AOT 編譯以獲得原生性能。
通過(guò) ImageGlider,可以輕松進(jìn)行圖像處理操作,完全擺脫外部依賴(lài),無(wú)需 ImageMagick、Node.js 或 Python,適合在 .NET 項(xiàng)目中內(nèi)嵌、分發(fā)或集成自動(dòng)化流程中使用。
目標(biāo)是打造一個(gè)跨平臺(tái)、零依賴(lài)、高性能、全功能的圖像處理解決方案?。梢岳斫鉃楹?jiǎn)化操作版本的 ImageMagick)
項(xiàng)目地址: https://github.com/star-plan/image-glider
功能特點(diǎn)
?? 核心圖像處理功能
??? 格式轉(zhuǎn)換:支持 JPEG、PNG、GIF、BMP、TIFF、WebP 等多種圖像格式的相互轉(zhuǎn)換
?? 尺寸調(diào)整:支持拉伸、保持寬高比、裁剪等多種調(diào)整模式
??? 壓縮優(yōu)化:智能壓縮算法,在保持質(zhì)量的同時(shí)減小文件體積
?? 圖像裁剪:精確裁剪指定區(qū)域,支持中心裁剪和自定義坐標(biāo)裁剪
??? 縮略圖生成:快速生成高質(zhì)量縮略圖,支持多種尺寸模式
?? 水印功能:支持文本和圖片水印,9種位置選擇,可調(diào)透明度和縮放
?? 元數(shù)據(jù)清理:一鍵清除 EXIF、ICC、XMP 等隱私敏感的元數(shù)據(jù)信息
?? 顏色調(diào)整:調(diào)整亮度、對(duì)比度、飽和度、色相、伽馬值等顏色參數(shù)
?? 信息提取:獲取圖像詳細(xì)信息,支持JSON格式輸出
??? 技術(shù)特性
?? 跨平臺(tái):基于 .NET 9 和 ImageSharp,支持 Windows、Linux、macOS
? AOT 編譯:支持原生AOT編譯,啟動(dòng)速度快,內(nèi)存占用低
?? 零依賴(lài):無(wú)需安裝額外的圖像處理工具或運(yùn)行時(shí)環(huán)境
?? 模塊化設(shè)計(jì):核心功能封裝為獨(dú)立類(lèi)庫(kù),便于集成和擴(kuò)展
?? 多種接口:提供CLI工具、Web API、核心類(lèi)庫(kù)三種使用方式
?? 使用方式
命令行工具:16種專(zhuān)業(yè)命令,支持單文件和批量處理
Web API:RESTful接口,支持HTTP文件上傳和處理
核心類(lèi)庫(kù):直接集成到.NET項(xiàng)目中使用
批量處理:自動(dòng)掃描目錄,支持遞歸處理和文件過(guò)濾
詳細(xì)日志:完整的日志記錄,支持多種日志級(jí)別
錯(cuò)誤處理:完善的異常處理機(jī)制,提供詳細(xì)的處理結(jié)果信息
使用方法
作為 .NET Global Tool 安裝(推薦)
dotnet tool install --global ImageGlider.Cli
安裝完成之后就可以通過(guò)命令行使用了
$ imageglider
=== ImageGlider 命令行工具 ===
用法:
ImageGlider.Cli <命令> [選項(xiàng)]
ImageGlider.Cli help [命令] 顯示幫助信息
可用命令:
adjust 調(diào)整單個(gè)圖片文件的顏色(亮度、對(duì)比度、飽和度、色相、伽馬值)
batch-adjust 批量調(diào)整指定目錄下圖片文件的顏色(亮度、對(duì)比度、飽和度、色相、伽馬值)
batch-compress 批量壓縮優(yōu)化圖片文件
batch-convert 批量轉(zhuǎn)換圖片文件
batch-crop 批量裁剪指定目錄下的圖片文件
batch-info 批量查看目錄下圖片文件的詳細(xì)信息
batch-resize 批量調(diào)整圖片文件尺寸
batch-strip-metadata 批量清理指定目錄下圖片文件的元數(shù)據(jù)
batch-thumbnail 批量生成指定目錄下圖片文件的縮略圖
batch-watermark 批量為圖片文件添加水印
compress 壓縮優(yōu)化單個(gè)圖片文件
convert 轉(zhuǎn)換單個(gè)圖片文件
crop 裁剪單個(gè)圖片文件
info 查看圖片文件的詳細(xì)信息
resize 調(diào)整單個(gè)圖片文件尺寸
strip-metadata 清理單個(gè)圖片文件的元數(shù)據(jù)
thumbnail 生成單個(gè)圖片文件的縮略圖
watermark 為單個(gè)圖片文件添加水印
使用 'ImageGlider.Cli help <命令>' 查看特定命令的詳細(xì)幫助。
示例:
ImageGlider.Cli convert -s image.jfif -t image.jpeg -q 85
ImageGlider.Cli batch-convert -se .jfif -te .jpeg -q 90
ImageGlider.Cli resize -s input.jpg -t output.jpg -w 800 -h 600
ImageGlider.Cli compress -s input.jpg -t output.jpg -l 60
ImageGlider.Cli help convert
AOT 與其他方式
通過(guò)其他方式安裝(如 scoop、brew)和 AOT 編譯發(fā)布,本文就不贅述了,請(qǐng)查看 項(xiàng)目文檔。
轉(zhuǎn)自https://www.cnblogs.com/deali/p/19024294
該文章在 2025/11/3 10:00:04 編輯過(guò)