ImageUtility及帮助文档

ImageUtility是一个针对AVG游戏制作的图像处理工具,作者是tormtorm。
该工具除了可以做批量压缩,转格式,裁剪等一般图像批处理工具能做的事外,还加入了游戏制作专用的选项,例如可以方便地将透明的png图片转换为Nscripter右半边遮罩的图片,或将解包的Nscripter图片转回带透明度的png。

工具在此:
http://pan.baidu.com/s/1bnCHand
下面是使用说明


□软件介绍

本程序是一个图像处理工具,有三种使用模式:
图形界面(GUI)、命令行(CUI)和脚本。
自编自用的一个工具,不能保证是否能满足需求以及没有Bug等。


□功能(共通)
    格式变换(Bmp Png Jpeg Tlg)
    透明度优化
    颜色替换
    裁剪
    调整大小
    旋转与翻转
    灰度化
    颜色叠加
    亮度与对比度调节
    色彩平衡调节
    色调,饱和度和光亮度调节
    模糊
    马赛克
    
□功能(个别)
    提取PSD
    拆分◎
    拼合
    裁剪◎
    消除◎
    差分生成
    差分合成
    遮罩分离◎
    遮罩合成◎
    
□特征
    图形界面和命令行下可以实现特定的功能。
    脚本模式下可以实现一些前两者难以实现的复杂操作。
    支持三种格式的脚本:ImageUtility,Lua,Squirrel。
    CUI可与批处理结合,执行比较复杂的工作。
    GUI只能半直观地用于单一用途。
    可以指定文件夹,一并处理其中的所有文件。
    文件名可使用通配符和正则表达式。
    默认情况下正则表达式引擎为"bregexp.dll",
    也可以用更为强大的正则库"bregonig.dll"替换。
    可以使用Susie插件读入各种格式的图像。
    转换成JPEG或PNG格式的图像文件体积可能更小。
    使用SIMD,提高转换的速度。 
    支持保留α通道的图像编辑。 
    支持半透明图像的叠加。
    
□多线程处理
    利用多线程可同时处理多个文件。“功能(共通)”和“□功能(个别)”中带有◎标记的支持多线程。
    
□注意事项
    虽然经自己试验没有问题,但是使用此软件出现的任何后果请自行承担。
    
/*―――――――――――――――――――――――――――――――――――――――*/


□使用说明


通用部分
    要使用Susie插件并进行设定,可拖放相应的.spi文件至imageUtility.exe的图标上打开程序,将会打开设定对话框。


GUI
    双击可执行文件启动工具,根据需求进行各种设置,然后将待转换的文件或文件夹的图像拖放到程序界面,得转换后的文件。
    
CUI(命令行)
    输入文件或文件夹名必须在选项之后。
    每种功能的选项参数不是用空白符分隔,而是用半角逗号“,”。
    分类在“功能(个别)”的选项,一次执行只能制定一个。
    输入文件或文件夹可以使用通配符,如果输入文件夹包含子目录,处理过的图像将保留原目录结构储存。
    
脚本
    拖动脚本文件至imageUtility.exe图标上执行(即脚本文件作为imageUtility.exe的第一个命令行参数传递)。
    「.txt」对应imageUtility专用脚本语言,其格式见「スクリプト·補助.txt」「スクリプト·图像.txt」「スクリプト·専用.txt」
    「.lua」对应lua脚本,格式见「スクリプト·補助.txt」「スクリプト·图像.txt」
    「.nut」对应Squirrel脚本,格式见「スクリプト·補助.txt」「スクリプト·图像.txt」
    需要数行命令的情况下,使用脚本比命令行模式更迅速。
    
○线程参数(共通)


-MTN,线程数(1-16)
 支持多线程的情况下可指定线程数。若不指定则根据CPU核心数自动选择。
    
    
○输出选项(共通)
 
 -OUT,文件名或文件夹名
    可使用相对路径或绝对路径,但是,文件名只在仅有一个输出文件时有效。
    
○输入选项(共通)


-IN,flag(1=遍历子文件夹,2=降序排序,4=排序不区分大小写字母及平片假名)=1,使用正则表达式(0-1)=0 
(这里……=1指参数缺省情况下为1,下同)



○保存格式选项(共通)


-FMT,格式(BMP PNG JPG TLG PSD)[,位深度(32 24 8 0)=0,PNG压缩率(0-9)=9 ,OP(0-1)=0]
                                             ,JPEG品质(0-100)=100,OP(0-2|4|8)=1]
                                             ,TLG形式(0=TGL5 1=TLG6)=1]
    根据指定的参数保存文件。
    位深度使用8(bit)将变为灰度图像,使用0则会自动判断并选择。
    
    PNG-OP 0 = 通常形式。如果没有特殊需要,请用此值。
    PNG-OP 1 = 交错形式。写入速度提高。不过,文件增大速度会降低。
    JPEG-OP 0 = 标准基线形式。最快,输出文件也最大。
    JPEG-OP 1 = 优化基线形式。速度较慢,输出文件较小。
    JPEG-OP 2 = progressive形式。速度最慢,体积也最小。
        注意:与基线形式比较progressive形式的图像读取速度也会下降。
 JPEG-OP 0 = 4:2:0 (2x2 1x1 1x1)
 JPEG-OP 4 = 4:2:2 (2x1 1x1 1x1)
 JPEG-OP 8 = 4:4:4 (1x1 1x1 1x1)
    
※PNG 使用最高压缩率,处理速度减慢,文件大小明显减小。
※JPEG 使用着浮点DCT变换,与SEE2与对应,文件大小与压缩速率关系不大。
※以PSD形式保存需要「TlPsdEx.dll」的支持。


例:imageUtility.exe -FMT,BMP,24 图像1 图像2 图像3 ...
例:imageUtility.exe -FMT,JPG,24,80,1 文件夹1 文件夹2 ...


    
○透明度优化选项(共通)


-DTP[,范围(px)=0]


如果输入图像有α通道,可使用此选项进行透明度优化。
 并且,若雨 -FMT 的位深度0与并用,会保存为全不透明24bit格式。


 范围 >= 0 从透明边界开始,指定范围外的像素用黑色填充,α价值0RGB。
 范围 < 0 只对透明边界线外的颜色泄露的像素进行优化。
 
例:imageUtility.exe -FMT,PNG,32,9,0 -DTP 图像1 图像2 图像3 ...



○颜色替换选项(共通)


-C2C,[,替换前颜色(0xAARRGGBB)=0x00000000,替换后的颜色(0xAARRGGBB)=0x00000000,替换前颜色省略(0=无效|1=左上角色|2=右上角色)=0]


例:imageUtility.exe -C2C,0xFF00FF00,0xFF0000FF 图像1 图像2 图像3 ...



○裁剪选项(共通)


-TRM,位置(U=上|D=下|L=左|R=右)[,中心固定=0,透明度=0]
 裁剪指定位置的指定透明度以下的部分。


 中心固定 0 = 无
 中心固定 1 = 上下
 中心固定 2 = 左右
 中心固定 3 = 上下左右
    
例:imageUtility.exe -TRM,UDLR,0 图像1 图像2 图像3 ...
例:imageUtility.exe -TRM,LR,1 文件夹1 文件夹2 ...
 指定的文职请写在一起。



○调整大小选项(共通)


-RES[,方法(0=相对大小%单位 1=绝对大小)=0,宽度值=0,高度值=0,缩小法=2,扩大法=1]
 根据指定方法放大或缩小图片。
 宽度值或高度值如果为0,则保持宽度或高度原值不变。


 缩小(扩大)法 0 = 近邻取样法
 缩小(扩大)法 1 = 双线性内插法
 缩小(扩大)法 2 = 平均像素法


例:imageUtility.exe -RES,0,50.0,50.0,2,1 图像1 图像2 图像3 ...
例:imageUtility.exe -RES,1,400,300,2,1 文件夹1 文件夹2 ...
 不能使用小于0的度值。


    
○旋转与翻转选项(共通)


-ROT[,角度=0,翻转(0-3)=0]
 按制定方法旋转或翻转图像。


 翻转 0 = 无
 翻转 1 = 左右
 翻转 2 = 上下
 翻转 3 = 上下左右


例:imageUtility.exe -ROT,90 图像1 图像2 图像3 ...
例:imageUtility.exe -ROT,45,2 文件夹1 文件夹2 ...
 注意:参数为0度与360度时图像不会旋转。    
    
    
○灰度化选项(共通)


-GRY
    转为灰度图像
    
例:imageUtility.exe -GRY 图像1 图像2 图像3 ...
例:imageUtility.exe -GRY 文件夹1 文件夹2 ...



○颜色叠加(共通)


-COL[,方法(0-21)=0,色値=0x00000000]
 使用一种图层混合模式将指定颜色与图像叠加。
    
 方法  1 = 正常(Normal)
 方法  2 = 增加(Add)
 方法  3 = 差值(Substract)
 方法  4 = 正片叠底(Multiply)
 方法  5 = 除法(Devide)
    方法  6 = 滤色(Screen)
    方法  7 = 浅色(Lighter Color)
    方法  8 = 深色(Darker Color)
    方法  9 = 差值(Difference)
    方法  10 = 排除(Exclusion)
    方法  11 = 线性减淡(Linear Dodge)
    方法  12 = 颜色减淡(Color Dodge)
    方法  13 = 线性加深(Linear Burn)
    方法  14 = 颜色加深(Color Burn)
    方法  15 = 叠加(Overlay)
    方法  16 = 强光(Hard Light)
    方法  17 = 柔光(Soft Light)
    方法  18 = 亮光(Vivid Light)
    方法  19 = 线性光(Linear Light)
    方法  20 = 固定光(Pin Light)
    方法  21 = 实色混合(Hard Mix)


例:imageUtility.exe -COL,1,0xFFFF0000 图像1 图像2 图像3 ...
例:imageUtility.exe -COL,2,0xFF00FF00 文件夹1 文件夹2 ...



○亮度与对比度调节(共通)


-BC[,亮度(-100-100)=0,对比度(-100-100)=0]
 调节亮度(Brightness)与对比度。
    
例:imageUtility.exe -BC,50,0 图像1 图像2 图像3 ...
例:imageUtility.exe -BC,0,50 文件夹1 文件夹2 ...



○色彩平衡调节(共通)


-CL[,红蓝(-100-100)=0,红绿(-100-100)=0,蓝黄(-100-100)=0]
 色彩平衡调节。


例:imageUtility.exe -CL,100,0,-100 图像1 图像2 图像3 ...
例:imageUtility.exe -CL,-50,50,0 文件夹1 文件夹2 ...



○色调,饱和度和光亮度调节(共通)


-HSL[,色调(-180-180)=0,饱和度(-100-100)=0,明度(-100-100)=0]
 调节色调,饱和度和光亮度(Lightness)。


例:imageUtility.exe -HSL,90,0,50 图像1 图像2 图像3 ...
例:imageUtility.exe -HSL,0,-50,-50 文件夹1 文件夹2 ...



○模糊(共通)


-BLR[,X方向=0,Y方向=0]
 指定方向上使图片模糊。


例:imageUtility.exe -BLR,7,7 图像1 图像2 图像3 ...
例:imageUtility.exe -BLR,32,32 文件夹1 文件夹2 ...



○马赛克(共通)


-MSC[,横值=0,纵值=0]
 给图像打上指定尺寸的马赛克。


例:imageUtility.exe -MSC,7,7 图像1 图像2 图像3 ...
例:imageUtility.exe -MSC,32,32 文件夹1 文件夹2 ...



○提取PSD(个别)


-PSD[,方式(0=拼合 1=图层编号)=0,名称(0=图层名称 1=连续)=0,插值(0=无 1=有)=0]
 从PSD按指定方法提取图像。


例:imageUtility.exe -PSD,0,0,0 PSD1 PSD2 PSD3 ...
例:imageUtility.exe -PSD,1,1,1 文件夹1 文件夹2 ...
 非PSD文件使用此选项会报错。


 


○拆分(个别)


-DIV[,横分割数(1-)=1,纵分割数(1-)=1,优先(0=横|1=纵)=0]
 指定方向按指定数字分割图像。


例:imageUtility.exe -DIV,1,10 图像1 图像2 图像3 ...
例:imageUtility.exe -DIV,8,6 文件夹1 文件夹2 ...
 不能整除时,得到的图像会有1个像素的大小差别。


    
 
○拼合(个别)


-CNT[,方向(0=纵左 1=横上 2=纵中 3=横中 4=纵右 5=横下)=0]
 按指定方向与指定对齐方式拼合图像。例如,“纵左”为纵向拼合图像,各图像左侧对齐。


例:imageUtility.exe -CNT,0 图像1 图像2 图像3 ...
例:imageUtility.exe -CNT,2 文件夹1 文件夹2 ...
 图像大小不一致时,拼合得到的图像尺寸以最大的为准。



○裁剪(个别)


-CUT[,X坐标=0,Y坐标=0,宽=1,高=1]
 以指定坐标点为左上角,裁剪出指定宽高的图像。


例:imageUtility.exe -CUT,40,30,400,300 图像1 图像2 图像3 ...
例:imageUtility.exe -CUT,80,60,800,600 文件夹1 文件夹2 ...
 参数设定不可超出原图像尺寸。



○消除(个别)


-ERS[,X坐标=0,Y坐标=0,宽1,高=1]
 从指定坐标开始从原图像挖去指定大小的图像。


例:imageUtility.exe -ERS,40,30,400,300 图像1 图像2 图像3 ...
例:imageUtility.exe -ERS,80,60,800,600 文件夹1 文件夹2 ...
 参数设定不可超出原图像尺寸。
    
    
○差分生成(个别)


-DIF[,方法(0-1)=0,范围(0-2)=0,一致色(0xXXXXXX)=0x000000]


    将图像的颜色信息在指定范围内按指定方法与底部图像相减。
    
 方法 0 = 按矩形范围的不一致的像素。
 方法 1 = 所有不一致的像素。
 范围 0 = 最低的消除范围。
 范围 1 = 修正有多个消除的范围。
 范围 2 = 不消除。


例:imageUtility.exe -DIF,0,0 底部图像 图像1 图像2 ...
例:imageUtility.exe -DIF,2,2 文件夹1 文件夹2 ...
 
    底部图像与处理图像的尺寸必须一致。
 指定输入为文件夹时,以文件夹第一个图像作为底部图像。
    
    
○差分合成(个别)


    
    -CMP[,方法(0-2)=0,X坐标=0,Y坐标=0,补齐(0-1)=0,去除颜色(0xXXXXXX)=0x000000]
 ベース画像の指定座標に、指定の方法で画像を合成します。
 合成画像がにα値がない場合は抜き色を完全透過とみなします。


    根据底部图像与指定坐标,按指定方法合成图像。
    合成图像没有α值的情况下,底部图像会完全透过移除颜色。
    
 方法 0 = 直接将合成图像覆盖在底部图像之上。
 方法 1 = 将合成图像α值1以上(即非完全透明部分)覆盖在底部图像之上。
 补齐 0 = 只在底部图像范围内混合。
 补齐 1 = 合成图像的超出基准图像范围的部分也会被输出。


例:imageUtility.exe -CMP,0,40,30 底部图像 图像1 图像2 ...
例:imageUtility.exe -CMP,2,-80,-60 1 文件夹1 文件夹2 ...
 指定输入为文件夹时,以文件夹第一个图像作为底部图像。
   


○混合选项(个别)
-BLD[,方法(0-21)=0,X坐标=0,Y坐标=0,α值(0-256)=256,补齐(0-1)=0]
 以Dest图像指定坐标处、按制定方法,以指定透明度,与Src图像混合。


 方法  0 = 复制(Copy)
    方法  1 = α混合(Alpha Blend)
 方法  2 = 增加(Add)
 方法  3 = 差值(Substract)
 方法  4 = 正片叠底(Multiply)
 方法  5 = 除法(Devide)
    方法  6 = 滤色(Screen)
    方法  7 = 浅色(Lighter Color)
    方法  8 = 深色(Darker Color)
    方法  9 = 差值(Difference)
    方法  10 = 排除(Exclusion)
    方法  11 = 线性减淡(Linear Dodge)
    方法  12 = 颜色减淡(Color Dodge)
    方法  13 = 线性加深(Linear Burn)
    方法  14 = 颜色加深(Color Burn)
    方法  15 = 叠加(Overlay)
    方法  16 = 强光(Hard Light)
    方法  17 = 柔光(Soft Light)
    方法  18 = 亮光(Vivid Light)
    方法  19 = 线性光(Linear Light)
    方法  20 = 固定光(Pin Light)
    方法  21 = 实色混合(Hard Mix)
 补齐 0 = 只在Dest图像范围内混合。
 补齐 1 = Src图像的超出Dest图像范围的部分也会被输出。


例:imageUtility.exe -BLD,0,40,30,256 Dest图像 Src图像1 Src图像2 ...
例:imageUtility.exe -BLD,1,-80 -60,128 1 文件夹1 文件夹2 ...
 指定输入为文件夹时,以文件夹第一个图像作为Dest图像。
   


○遮罩分离(个别)


-A2M[,方法(0-1)=0,遮罩颜色反转(0-1)=0]
 按照指定方法,提取指定图像的α通道。


 方法 0 = 分别输出位深度24bit的图像和8bit的遮罩(文件名带_m)。
 方法 1 = 输出右侧为遮罩的24bit的图像。
 反转 0 = α值与黑白的换算不反转。(吉里吉里)
 反转 1 = α值与黑白的换算反转。(NScripter)


例:imageUtility.exe -A2M,0,0 图像1 图像2 图像3 ...
例:imageUtility.exe -A2M,1,1 文件夹1 文件夹2 ...
 输出图像的位深度是固定的。
    
    
○遮罩合成(个别)


-M2A[,方法(0-1)=0,合成(0-3)=0,X坐标=0,Y坐标=0]
 从指定图像,按制定方法加入α值数据。
 レイヤーマスクは対象图像α値に該当値を代入します。
 クリップマスクは対象图像α値に該当値を乗算します。


 方法 0 = 将偶数个图像作为前一个图像的遮罩。
 方法 1 = 将图像的右半部分作为遮罩。
 合成 0 = 按黑白值代入α值。(吉里吉里)
 合成 1 = 将黑白值反转代入α值。(NScripter)
 合成 2 = 直接代入α值。
 合成 3 = 将α値反转后代入。
 合成 4 = 直接乘上黑白值。
 合成 5 = 白黒値反转后再做乘法。
 合成 6 = 直接乘上α值。
 合成 7 = α值反转后再做乘法。


例:imageUtility.exe -M2A,0,0 图像1 遮罩1 ...
 图像和遮罩尺寸必须相同。
例:imageUtility.exe -M2A,1,0 マスク付き图像1 マスク付き图像2 ...
例:imageUtility.exe -M2A,1,0 文件夹1 文件夹2 ...
 包含遮罩的图像也必须是偶数个。
    
/*―――――――――――――――――――――――――――――――――――――――*/
    作者博客链接:http://blog.livedoor.jp/tormtorm/
    翻译By Aba,在NScripter吧群各位的指导下。

/*―――――――――――――――――――――――――――――――――――――――*/

译者PS:


□应用实例:


ImageUtility配合批处理可以做很多事情。现举一例:


○将带alpha通道的bmp图像转成左半边是彩色,右半边是黑白遮罩的Nscripter接受的图像:

假设原图像在imageUtility目录下的source文件夹,转换完成的jpg存放在result文件夹。

    在imageUtility目录新建批处理文件run.bat如下:

    for %%a in (source\*.bmp) do (
        imageUtility.exe -FMT,BMP -A2M,0,1 source\%%~na.bmp
        imageUtility.exe -FMT,JPG,24,90,1 -OUT,"result\%%~na.jpg" -CNT,1 %%~na.bmp %%~na_m.bmp
        del %%~na.bmp
        del %%~na_m.bmp
    )

    或使用Perl脚本,内容如下:

    use File::Basename;
    @files = glob 'source\*.bmp';
    mkdir 'result';
    foreach $graph (@files){
        system "imageUtility.exe -FMT,BMP -A2M,0,1 $graph";
        $bname = basename $graph;
        $bname =~ /(.*)\.bmp/;
        $mask = "$1_m.bmp";
        system "imageUtility.exe -OUT,result\\$1.jpg -FMT,JPG,24,90,1 -CNT,1 $bname $mask";
        unlink $bname;
        unlink $mask;
    }

    很多游戏使用的图片是tga格式的,imageutility不支持这种格式,需要先用其它工具先转为bmp,例如XnView。XnView也可以批量提取图片的alpha通道,可是如果是24位无alpha通道的,XnView会错误地提取出红色通道,而ImageUtility在此处则没有这种问题。

你可能感兴趣的:(Nscripter,图片处理)