原因

工作需要经常需经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

原文地址:http://www.cnblogs.com/BrightHuang/p/16819878.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性