图片格式转换
官方脚本
可调用节点
v3.0.0
图片格式转换 | 基于 ImageMagick 的 200+ 图片格式互转(PNG/JPEG/WEBP/AVIF/HEIC/TIFF 等),支持批量处理、自定义输出目录、图片质量调节,可定时任务与脚本联动调用 | 一键输出转换图片
脚本能力
直接启动支持
右键启动支持
快捷键启动支持
超级复制启动不支持
定时任务支持
可被其他脚本调用是
依赖其他脚本否
图形化启动界面支持
一键将图片转换为 PNG / JPEG / WEBP / BMP / GIF / ICO / TIFF 等 200+ 种格式,基于 ImageMagick 引擎,支持批量处理、定时任务与脚本联动。
✨ 核心特性
- 200+ 格式支持:基于 ImageMagick 引擎,支持 PNG、JPEG、WEBP、AVIF、HEIC、TIFF 等 200+ 种格式互转
- 参数窗口自动弹出:启动前自动弹出参数设置窗口,可选择输出格式、质量、输出目录
- 右键菜单集成:选中图片 → 右键 → 一键转换,参数窗口自动预填所选图片
- 批量处理:支持同时选中多张图片批量转换
- 自定义输出目录:可指定输出位置,留空则保存到原图所在目录
- 质量可调:图片质量 1-100 自由调节(适用于 JPG/WEBP 等有损格式)
- 智能边缘处理:自动处理 JPEG 透明通道等特殊情况
- 安全输出:同目录输出自动加
_converted后缀,绝不覆盖原图 - 定时任务:可定时自动转换,无人值守运行
- 脚本联动:已声明为节点,可被其他脚本调用并返回转换结果
🎬 脚本演示

安装方法
本脚本的运行环境、依赖组件及图形化窗口均依赖"不忙脚本盒子",建议仅通过盒子安装和使用本脚本。
前置条件:安装好 不忙脚本盒子
- 打开盒子 → 脚本市场 → 搜索 「图片格式转换」
- 点击「安装」
安装后盒子会自动配置 Python 环境、ImageMagick,并提供右键、快捷键、定时任务等触发能力。
🚀 使用方式
卡片运行 / 右键 / 快捷键
- 在「不忙脚本盒子」中点击脚本卡片,或:
- 在文件管理器中选中一张或多张图片文件
- 右键点击 → 选择「图片格式转换」
- 或选中文件后按下为脚本设置的全局快捷键
- 脚本启动前自动弹出参数设置窗口,按需选择:
- 输出格式:下拉选择目标格式(支持 200+ 种)
- 图片质量:1-100 可调(仅 JPG/WEBP 生效)
- 输出目录:留空则输出到原图所在目录
- 点击「执行」,脚本开始批量转换并在控制台显示进度
定时任务
- 在盒子的「定时任务」中新建任务,选择本脚本
- 在任务表单中设置源文件、输出格式、质量等参数(可留默认值)
- 设定触发时间,到点后盒子自动无人值守运行并记录结果
💡 使用提示
- 输出格式:除常用格式外,还支持 AVIF、JXL、HEIC 等现代格式;下拉框可直接滚动选择
- 输出目录:可在文件资源管理器地址栏复制文件夹路径,粘贴到参数窗口的「输出目录」
- 同目录输出:为避免覆盖原图,同目录输出会自动追加
_converted后缀 - 定时场景:所有参数均有默认值,定时任务只需设置源文件即可
节点脚本(开发者阅读)
本脚本已声明为节点,可被其他脚本通过「脚本联动」调用:
- 传入图片路径(
data.target_paths),可覆盖参数format/quality/output_dir - 返回
output_paths(转换成功的文件绝对路径数组)、code、msg code = 0表示成功,非 0 表示失败(msg说明原因)
import json, sys, requests
payload = json.load(open(sys.argv[1], encoding="utf-8"))
env = payload["environment"]
r = requests.post(f"{env['api_base']}/api/link",
json={
"script_id": "92c926c7-7450-4503-bbaa-2a5b635eedd7",
"data": {"target_paths": ["C:/a.png", "C:/b.png"]},
"params": {"format": "webp", "quality": 90},
}, timeout=3600)
body = r.json()
if body.get("success") and body["result"].get("code") == 0:
print(body["result"]["output_paths"]) # 转换成功的结果路径列表
🖥️ 环境要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10+(64位) |
| 运行环境 | Python 3.8+、ImageMagick(由盒子自动安装) |
本脚本已声明为节点,可被其他脚本通过「不忙脚本盒子」机制调用。完整配置见下方 TOML,其他脚本若需调用请严格按此配置构造请求。
bm-scripts-box-rc.toml
[bmscriptsbox]
[bmscriptsbox.info]
id = "92c926c7-7450-4503-bbaa-2a5b635eedd7"
name = "图片格式转换"
desc = "图片格式转换 | 基于 ImageMagick 的 200+ 图片格式互转(PNG/JPEG/WEBP/AVIF/HEIC/TIFF 等),支持批量处理、自定义输出目录、图片质量调节,可定时任务与脚本联动调用 | 一键输出转换图片"
version = "3.0.0"
icon = "./imgs/img.png"
[bmscriptsbox.runtime]
language = "python"
language_version = ">=3.8"
entry = "main.py"
terminal = "always"
binaries = [{name = "imagemagick"}]
[bmscriptsbox.triggers.context_menu]
enabled = true
targets = ["files"]
filters = [".png", ".jpg", ".jpeg", ".webp", ".gif", ".bmp", ".ico", ".tiff", ".tif", ".svg", ".pdf", ".psd", ".ai", ".eps", ".avif", ".heic", ".heif", ".jxl", ".raw", ".arw", ".cr2", ".cr3", ".dng", ".nef", ".orf", ".rw2", ".xcf", ".ps", ".pict", ".pcx", ".tga", ".dds", ".exr", ".hdr", ".pbm", ".pgm", ".ppm", ".pnm", ".xpm", ".xbm", ".cur", ".ani", ".wbmp", ".apng", ".mng", ".jng", ".jp2", ".j2c", ".j2k", ".jpc", ".jpm", ".jpt", ".dcx", ".mtv", ".sgi", ".sun", ".ras", ".vicar", ".viff", ".xv", ".fits", ".fts", ".pal", ".uyvy", ".yuv", ".gray", ".cmyk", ".cin", ".dpx", ".fl32", ".rla", ".rle", ".sct", ".pix", ".al", ".ipl", ".miff", ".mpc", ".mvg", ".palm", ".pdb", ".picon", ".pocketmod", ".psb", ".ptif", ".qoi", ".sf3", ".six", ".sixel", ".vda", ".vst", ".wpg", ".x3f", ".xps", ".fff", ".mos", ".mef", ".mrw", ".mdc", ".dcm", ".dicom", ".ora", ".pdfa", ".eps2", ".eps3", ".ept", ".ept2", ".ept3", ".epdf"]
[bmscriptsbox.triggers.shortcut]
enabled = true
input_type = "files"
filters = [".png", ".jpg", ".jpeg", ".webp", ".gif", ".bmp", ".ico", ".tiff", ".tif", ".svg", ".pdf", ".psd", ".ai", ".eps", ".avif", ".heic", ".heif", ".jxl", ".raw", ".arw", ".cr2", ".cr3", ".dng", ".nef", ".orf", ".rw2", ".xcf", ".ps", ".pict", ".pcx", ".tga", ".dds", ".exr", ".hdr", ".pbm", ".pgm", ".ppm", ".pnm", ".xpm", ".xbm", ".cur", ".ani", ".wbmp", ".apng", ".mng", ".jng", ".jp2", ".j2c", ".j2k", ".jpc", ".jpm", ".jpt", ".dcx", ".mtv", ".sgi", ".sun", ".ras", ".vicar", ".viff", ".xv", ".fits", ".fts", ".pal", ".uyvy", ".yuv", ".gray", ".cmyk", ".cin", ".dpx", ".fl32", ".rla", ".rle", ".sct", ".pix", ".al", ".ipl", ".miff", ".mpc", ".mvg", ".palm", ".pdb", ".picon", ".pocketmod", ".psb", ".ptif", ".qoi", ".sf3", ".six", ".sixel", ".vda", ".vst", ".wpg", ".x3f", ".xps", ".fff", ".mos", ".mef", ".mrw", ".mdc", ".dcm", ".dicom", ".ora", ".pdfa", ".eps2", ".eps3", ".ept", ".ept2", ".ept3", ".epdf"]
[[bmscriptsbox.inputs]]
name = "target_paths"
label = "源文件"
type = "list"
pick = "files"
exts = [".png", ".jpg", ".jpeg", ".webp", ".gif", ".bmp", ".ico", ".tiff", ".tif", ".svg", ".pdf", ".psd", ".ai", ".eps", ".avif", ".heic", ".heif", ".jxl", ".raw", ".arw", ".cr2", ".cr3", ".dng", ".nef", ".orf", ".rw2", ".xcf", ".ps", ".pict", ".pcx", ".tga", ".dds", ".exr", ".hdr", ".pbm", ".pgm", ".ppm", ".pnm", ".xpm", ".xbm", ".cur", ".ani", ".wbmp", ".apng", ".mng", ".jng", ".jp2", ".j2c", ".j2k", ".jpc", ".jpm", ".jpt", ".dcx", ".mtv", ".sgi", ".sun", ".ras", ".vicar", ".viff", ".xv", ".fits", ".fts", ".pal", ".uyvy", ".yuv", ".gray", ".cmyk", ".cin", ".dpx", ".fl32", ".rla", ".rle", ".sct", ".pix", ".al", ".ipl", ".miff", ".mpc", ".mvg", ".palm", ".pdb", ".picon", ".pocketmod", ".psb", ".ptif", ".qoi", ".sf3", ".six", ".sixel", ".vda", ".vst", ".wpg", ".x3f", ".xps", ".fff", ".mos", ".mef", ".mrw", ".mdc", ".dcm", ".dicom", ".ora", ".pdfa", ".eps2", ".eps3", ".ept", ".ept2", ".ept3", ".epdf"]
description = "待转格式的图片路径"
[[bmscriptsbox.params]]
name = "format"
label = "输出格式"
type = "str"
default = "png"
choices = [
"jpg", "jpeg", "png", "webp", "gif", "bmp", "ico", "tiff", "tif",
"svg", "pdf", "psd", "ai", "eps", "pdfa", "svgz",
"avif", "jxl", "heic", "heif",
"jp2", "j2c", "j2k", "jpc", "jpm", "jpt",
"apng", "mng", "jng",
"dds", "tga", "pcx", "pvr",
"exr", "hdr", "dpx", "cin", "fl32",
"raw", "dng", "cr2", "nef", "arw", "orf",
"pbm", "pgm", "ppm", "pnm",
"xpm", "xbm",
"cur", "wbmp",
"dcx", "mtv", "sgi", "sun", "ras", "vicar", "viff", "xv",
"fits", "fts", "pal", "uyvy", "yuv", "gray", "cmyk",
"ps", "epdf", "epi", "epsf", "epsi", "eps2", "eps3",
"ept", "ept2", "ept3", "miff", "mpc", "mvg", "palm",
"pdb", "picon", "pocketmod", "psb", "ptif", "qoi",
"sf3", "six", "sixel", "vda", "vst", "wpg",
"bgr", "bgra", "bgro", "cmyka", "graya", "rgba",
"rgbo", "rgb", "ycbcr", "ycbcra", "bayer", "bayera",
"aai", "art", "avs", "cal", "cals", "cip", "group4",
"fax", "g3", "g4", "hrz", "otb", "rle", "rgf",
"ubrl", "ubrl6", "uil", "brf", "isobrl", "isobrl6",
]
description = "输出格式(200+ 种,ImageMagick 支持)"
[[bmscriptsbox.params]]
name = "quality"
label = "图片质量"
type = "int"
default = 85
description = "图片质量 1-100(仅 JPG/WEBP 生效)"
[[bmscriptsbox.params]]
name = "output_dir"
label = "输出目录"
type = "str"
default = ""
description = "输出目录,留空则输出到原图所在目录(自动加 _converted 后缀,不覆盖原图)"
[[bmscriptsbox.outputs]]
name = "output_paths"
type = "list"
description = "转换生成的图片文件绝对路径数组"
[bmscriptsbox.node]
enabled = true
[bmscriptsbox.schedule]
enabled = true
[bmscriptsbox.params_form]
enabled = true
免责声明
所有脚本由用户通过开源仓库自行发布。本站仅提供索引服务,"不忙脚本盒子"仅提供展示与安装服务。请在使用前仔细核实脚本内容,作者不对其安全性、准确性及适用性作任何保证。