原因
工作需要经常需经inkspace生成尺寸、DPI严格规定限制的图片用于文档,且只接受jpg格式。而inkspace1.1版本导出jpg,DPI自动降为96*96(像素不变时,尺寸相对变大了,无法使用)。inkspace1.1导出png没有问题。
手段
计划通过inkspace导出png图片,使用magick实现图片参数不变的情况下,png转jpg。
由于win10命令行无法实现文件名的转换后的匹配,考虑在png转jpg的过程中使用lua脚本调用magick实现。
准备
- 安装ImageMagick
- 安装lua5.3并配置好luarocks
- 使用luarcks安装luafilesystem模块
代码
local lfs = require"lfs"
local os = require"os"
local str = require"string"
function png2jpg(path)
os.execute("mkdir convimg")
for file in lfs.dir(path) do
if file ~= "." and file ~= ".." and file ~="convimg" and file ~="file.lua" then
local f = path..'/'..file
local nf = str.gsub(file,".png",".jpg")
local nfp = path..'/convimg/'..nf
--print("\n"..file)
--print("\n"..f)
--print("\n"..nf)
--print("\n"..nfp)
local sign = os.execute("magick " .. f .." "..nfp)
end
end
end
png2jpg(".")
结果
文件树视图
.
├── 01-主视图.png
├── 02-后视图.png
├── 03-左视图.png
├── 04-右视图.png
├── 05-俯视图.png
├── 06-仰视图.png
├── 07-立体图.png
├── a.txt
├── convimg
│ ├── 01-主视图.jpg
│ ├── 02-后视图.jpg
│ ├── 03-左视图.jpg
│ ├── 04-右视图.jpg
│ ├── 05-俯视图.jpg
│ ├── 06-仰视图.jpg
│ └── 07-立体图.jpg
└── file.lua
标签:重命名,批量,..,jpg,Lua,视图,file,local,png
From: https://www.cnblogs.com/BrightHuang/p/16819878.html