Achno/gowall: A tool to convert a Wallpaper’s color scheme / palette, image to pixel art, color palette extraction, image upscaling with Adversarial Networks and more image processing features
GoWall 可以把图片重新上色为 Catppuccin、Nord 等主题配色,顺带还能做压缩、格式转换、放大、OCR、像素画、提取调色板等一堆图片杂活[1]README 中的完整特性列表:转换壁纸主题(Catppuccin 等内置或自定义主题);png/jpeg/webp 图片压缩;图片和 PDF 的 OCR,支持 9+ 种 provider;AI 图片放大;转换图标主题(svg、ico);支持 Unix 管道/重定向;图片转像素画;替换指定颜色;多张图片合成 gif;提取调色板(类似 pywal);更改图片格式;反转颜色;绘制边框和网格;移除背景;镜像、翻转、灰度、亮度等效果;每日社区投票壁纸。。安装参考官方文档即可。
GoWall 目前不支持将 svg 格式的图片转成其他格式。以 v0.2.4 为例,gowall convert lua.svg --output lua.webp 会执行失败,需要先自行把 svg 转换掉。
可用的在线转换工具:
- SVG to PNG Converter - FreeConvert.com
- Pixeltools SVG to PNG:在浏览器本地运行,无需上传文件或注册。如果想再转一步,还有 PNG to WebP。
感谢读者 Christian 发邮件推荐 Pixeltools。
Scripts
个人最常用的场景是把图片转成 Catppuccin Mocha 配色并存为 webp,然后再提交到 Repo/ImageBed:gowall convert ./img/cover.jpg -t catppuccin --output ./cover.webp
Nushell 没有 gowall 的自动补全,每次手动敲这条命令比较麻烦,所以写了个脚本:传入一张图片,就在当前目录生成同名的 Catppuccin Mocha 配色 webp。#!/bin/bash# Ref: [installation | Gowall Docs](https://achno.github.io/gowall-docs/installation)# 检查参数数量if [ $# -ne 1 ]; then echo "用法: $0 <图片文件路径>" echo "示例: $0 ./img/cover.jpg" exit 1fi# 获取输入文件路径input_file="$1"# 检查文件是否存在if [ ! -f "$input_file" ]; then echo "错误: 文件 '$input_file' 不存在" exit 1fi# 获取文件名(不含路径和扩展名)filename=$(basename "$input_file")filename_no_ext="${filename%.*}"# 构建输出文件路径(当前工作目录 + 文件名 + .webp)output_file="$(pwd)/${filename_no_ext}.webp"# 执行gowall命令echo "正在转换: $input_file -> $output_file"gowall convert "$input_file" -t catppuccin --output "$output_file"# 检查命令执行结果if [ $? -eq 0 ]; then echo "✅ 转换成功: $output_file"else echo "❌ 转换失败" exit 1fi
Usage# 赋予脚本执行权限chmod +x mocha_it# 将脚本放在PATH中,例如:~/bin/mocha_it,个人是存在到`~/dotfiles/bin/`目录下export PATH="$PATH:~/dotfiles/bin"# 执行脚本mocha_it ./img/cover.jpg
README 中的完整特性列表:转换壁纸主题(Catppuccin 等内置或自定义主题);png/jpeg/webp 图片压缩;图片和 PDF 的 OCR,支持 9+ 种 provider;AI 图片放大;转换图标主题(svg、ico);支持 Unix 管道/重定向;图片转像素画;替换指定颜色;多张图片合成 gif;提取调色板(类似 pywal);更改图片格式;反转颜色;绘制边框和网格;移除背景;镜像、翻转、灰度、亮度等效果;每日社区投票壁纸。 ↩︎
