MAZANOKE 是一个自托管的本地图像优化工具,完全在浏览器中运行,支持离线使用,所有图像处理都在设备本地完成,不会将文件上传到服务器,同时会移除 EXIF 数据(如位置、日期等),避免追踪。MAZANOKE 采用 GNU General Public License v3.0 开源协议,适合个人和家庭使用,可以作为在线图片工具的替代方案。
MAZANOKE支持拖放或粘贴 JPG、PNG、WebP、HEIC、AVIF、TIFF、SVG、ICO 等格式图片,自定义优化参数能调整图像质量(数值越高细节保留越多,文件体积越小)、限制文件大小、设置最大宽高,格式转换支持在 JPG、PNG、WebP、ICO 之间转换,支持从 HEIC、AVIF、TIFF、GIF、SVG 等格式输入。
使用 Docker Compose 配置:
services:
mazanoke:
container_name: mazanoke
image: ghcr.io/civilblur/mazanoke:latest
ports:
- "3474:80"
# 可选:配置基本认证
environment:
- USERNAME=YourUsername
- PASSWORD=YourPassword
部署后访问 http://localhost:3474
,如果设置 USERNAME
和 PASSWORD
环境变量,访问时需输入用户名和密码。
下载最新源码版本,直接打开 index.html
文件即可在浏览器中启动应用。
• 访问 https://MAZANOKE.com
,点击右上角“Install”按钮(浏览器支持 PWA 时显示)。
• 若按钮未显示,可手动安装:
Chrome(桌面):点击三点菜单 → “Cast, save, and share” → “Install page as app” → 点击“Install”。
Safari(桌面):打开分享面板 → 点击“Add to Dock” → 确认“Add”。
移动端浏览器:在菜单中选择“添加到主屏幕”或“Add to Home Screen”。
1、index.html
启动应用,按顺序加载脚本:依赖库 → 全局变量 → 工具函数 → UI 操作 → 压缩逻辑。
2、用户拖放或选择图片后,events.js
捕获事件并触发 compression.js
中的压缩函数。
3、ui.js
解析用户设置(如质量、尺寸),utilities.js
验证参数,生成配置对象。
4、图片预处理:HEIC、ICO 等不支持格式需解码,AVIF 会转为有损格式避免文件变大。
5、使用 browser-image-compression.js
执行压缩,处理结果通过 download.js
下载或打包。
项目采用原生 JavaScript,无需包管理器,可通过 curl 命令更新依赖:
# 浏览器图像压缩库
curl -o assets/vendor/browser-image-compression.js https://raw.githubusercontent.com/Donaldcwl/browser-image-compression/refs/heads/master/dist/browser-image-compression.js
# HEIC 解码库
curl -o assets/vendor/heic-to.js https://raw.githubusercontent.com/hoppergee/heic-to/refs/heads/main/dist/iife/heic-to.js
# ICO 处理库
curl -o assets/vendor/ico.js https://unpkg.com/icojs/dist/ico.js
# PNG 转 ICO 库(需额外调整)
curl -o assets/vendor/png2ico.js https://raw.githubusercontent.com/datvm/PNG2ICOjs/refs/heads/master/src/png2icojs.js
# 调整代码使其支持全局调用
sed -i '' 's/^export class/class/' assets/vendor/png2ico.js
echo "\nwindow.PngIcoConverter = PngIcoConverter;" >> assets/vendor/png2ico.js
# 其他依赖(如 JSZip)
curl -o assets/vendor/jszip.js https://raw.githubusercontent.com/Stuk/jszip/refs/heads/main/dist/jszip.min.js