首页 > 其他分享 >Lua脚本批量转换重命名图片文件

Lua脚本批量转换重命名图片文件

时间:2022-10-23 22:44:53浏览次数:52  
标签:重命名 批量 .. jpg Lua 视图 file local png

原因

工作需要经常需经inkspace生成尺寸、DPI严格规定限制的图片用于文档,且只接受jpg格式。而inkspace1.1版本导出jpg,DPI自动降为96*96(像素不变时,尺寸相对变大了,无法使用)。inkspace1.1导出png没有问题。

手段

计划通过inkspace导出png图片,使用magick实现图片参数不变的情况下,png转jpg。

由于win10命令行无法实现文件名的转换后的匹配,考虑在png转jpg的过程中使用lua脚本调用magick实现。

准备

  1. 安装ImageMagick
  2. 安装lua5.3并配置好luarocks
  3. 使用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

相关文章

  • linux网络 PXE批量安装 Kickstart无人值守安装
    PXE批量网络装机PXE(预启动执行环境,在操作系统之前运行)是由Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装......
  • PXE批量安装
    一、pxe的定义1.1、pxe的基础预启动执行环境(PrebooteXecutionEnvironment,PXE)也被称为预执行环境,提供了一种使用网络接口(NetworkInterface)启动计算机的机制。这种机制......
  • Linux网络服务——PXE网络批量装机+Kickstart无人值守安装
    1系统安装介绍1.1系统装机的三种引导方式1硬盘2光驱3网络1.2系统安装过程加载bootloader加载启动安装菜单加载内核和initrd系统加载根系统运行anaconda......
  • 怎么批量在单元格前面加文字(转载)
    https://jingyan.baidu.com/article/a681b0de68322e7a184346f1.html 点击单元格格式选中需要在前面加文字的单元格,比如:G3-G6,点击【单元格格式】。 自定义类型......
  • jdbc之批量插入
    批量执行SQL语句当需要成批插入或者更新记录时,可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理。通常情况下比单独提交处理更有效率JDBC的批量......
  • 02,mybatise批量插入
    SqlSessionsession=sqlSessionFactory.openSession(ExecutorType.BATCH);try{SimpleTableMappermapper=session.getMapper(SimpleTableMapper.class);Listrecor......
  • 18. ElasticSearch系列之批量插入与更新
    本文介绍工作中Python版常用的高效ES批量插入、更新数据方式1.批量插入importpandasaspdfromelasticsearchimporthelpersactions=list()count=0forinde......
  • ArcGISPro 批量插入层图并将图层符号设置为指定目标图层的样式
    实际应用中,有一个GDB存了10924张路径栅格数据,现在要将个10942张栅格数据添加到ArcGISPro中,且要按照一个Pro中已经配好符号样式的图层,设置这个10942张栅格数据,效果如下图......
  • linux shell中利用关键字批量移动或复制文件
     001、[root@localhosttest3]#lsa34a45b34b54c23c34dirab[root@localhosttest3]#tree.├──a34├──a45├──b34├──b54├──c23......
  • java 批量插入
    1.在Mapper中/***批量添加实体*@paramequmentEntityList*/voidaddBatch(@Param("equmentEntityList")List<EqumentEntity>equmentEntityL......