Skip to content

Instantly share code, notes, and snippets.

@seektan
Last active October 30, 2015 08:17
Show Gist options
  • Select an option

  • Save seektan/3f9d54abd6f207fdfedf to your computer and use it in GitHub Desktop.

Select an option

Save seektan/3f9d54abd6f207fdfedf to your computer and use it in GitHub Desktop.

Revisions

  1. seektan revised this gist Oct 30, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion rename images
    Original file line number Diff line number Diff line change
    @@ -3,7 +3,7 @@
    批量处理用中文命名的图片,获取新旧文件名和图片对应关系,用于页面展示

    使用说明
    1.把本文件放到需要重命名的图片文件夹
    1.把本段代码存为rename.js文件文件放到需要重命名的图片文件夹
    2.根据情况修改下面参数中的图片前缀(prefix),选择生成数据的格式(oformat),图片开始的序号(startnum)
    3.用node运行本js文件
    3.1拖拽文件运行:把本文件拖拽到node.exe上运行(需先安装nodejs)
  2. seektan revised this gist Oct 30, 2015. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions 输出文件内容
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    #数组对象
    1、数组对象
    [
    {"title":"三周年", "oldimg":"三周年.jpg", "newimg":"n_10.jpg"},
    {"title":"京剧", "oldimg":"京剧.jpg", "newimg":"n_11.jpg"},
    @@ -18,7 +18,7 @@
    {"title":"糖果小丑", "oldimg":"糖果小丑.jpg", "newimg":"n_23.jpg"}
    ]

    #HTML代码
    2、HTML代码
    <li><img src="n_10.jpg" alt="三周年" /></li>
    <li><img src="n_12.jpg" alt="侠之风范√" /></li>
    <li><img src="n_11.jpg" alt="京剧" /></li>
  3. seektan revised this gist Oct 30, 2015. 1 changed file with 36 additions and 0 deletions.
    36 changes: 36 additions & 0 deletions 输出文件内容
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,36 @@
    #数组对象
    [
    {"title":"三周年", "oldimg":"三周年.jpg", "newimg":"n_10.jpg"},
    {"title":"京剧", "oldimg":"京剧.jpg", "newimg":"n_11.jpg"},
    {"title":"双鱼座", "oldimg":"双鱼座.jpg", "newimg":"n_13.jpg"},
    {"title":"侠之风范√", "oldimg":"侠之风范√.jpg", "newimg":"n_12.jpg"},
    {"title":"喜庆元旦", "oldimg":"喜庆元旦.jpg", "newimg":"n_14.jpg"},
    {"title":"戎马胡服√", "oldimg":"戎马胡服√.jpg", "newimg":"n_16.jpg"},
    {"title":"无双盛世√", "oldimg":"无双盛世√.jpg", "newimg":"n_17.jpg"},
    {"title":"欢度新春", "oldimg":"欢度新春.jpg", "newimg":"n_18.jpg"},
    {"title":"天秤座√", "oldimg":"天秤座√.jpg", "newimg":"n_15.jpg"},
    {"title":"福虎衣√", "oldimg":"福虎衣√.jpg", "newimg":"n_20.jpg"},
    {"title":"白羊座", "oldimg":"白羊座.jpg", "newimg":"n_19.jpg"},
    {"title":"程王爷√", "oldimg":"程王爷√.jpg", "newimg":"n_21.jpg"},
    {"title":"笙歌夜衣√", "oldimg":"笙歌夜衣√.jpg", "newimg":"n_22.jpg"},
    {"title":"萌萌哒", "oldimg":"萌萌哒.jpg", "newimg":"n_25.jpg"},
    {"title":"紫裘√", "oldimg":"紫裘√.jpg", "newimg":"n_24.jpg"},
    {"title":"糖果小丑", "oldimg":"糖果小丑.jpg", "newimg":"n_23.jpg"}
    ]

    #HTML代码
    <li><img src="n_10.jpg" alt="三周年" /></li>
    <li><img src="n_12.jpg" alt="侠之风范√" /></li>
    <li><img src="n_11.jpg" alt="京剧" /></li>
    <li><img src="n_13.jpg" alt="双鱼座" /></li>
    <li><img src="n_14.jpg" alt="喜庆元旦" /></li>
    <li><img src="n_15.jpg" alt="天秤座√" /></li>
    <li><img src="n_16.jpg" alt="戎马胡服√" /></li>
    <li><img src="n_17.jpg" alt="无双盛世√" /></li>
    <li><img src="n_18.jpg" alt="欢度新春" /></li>
    <li><img src="n_19.jpg" alt="白羊座" /></li>
    <li><img src="n_20.jpg" alt="福虎衣√" /></li>
    <li><img src="n_21.jpg" alt="程王爷√" /></li>
    <li><img src="n_23.jpg" alt="糖果小丑" /></li>
    <li><img src="n_22.jpg" alt="笙歌夜衣√" /></li>
    <li><img src="n_24.jpg" alt="紫裘√" /></li>
  4. seektan revised this gist Oct 30, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion rename images
    Original file line number Diff line number Diff line change
    @@ -6,7 +6,7 @@
    1.把本文件放到需要重命名的图片文件夹
    2.根据情况修改下面参数中的图片前缀(prefix),选择生成数据的格式(oformat),图片开始的序号(startnum)
    3.用node运行本js文件
    3.1拖拽文件运行:把本文件拖拽到node.exe上运行
    3.1拖拽文件运行:把本文件拖拽到node.exe上运行(需先安装nodejs)

    3.2命令行模式运行
    3.2.1进入命令行窗口(window运行cmd),进入存放图片的目录 x:\\xxxxx\你的图片目录
  5. seektan created this gist Oct 30, 2015.
    94 changes: 94 additions & 0 deletions rename images
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,94 @@
    /**
    作用
    批量处理用中文命名的图片,获取新旧文件名和图片对应关系,用于页面展示

    使用说明
    1.把本文件放到需要重命名的图片文件夹
    2.根据情况修改下面参数中的图片前缀(prefix),选择生成数据的格式(oformat),图片开始的序号(startnum)
    3.用node运行本js文件
    3.1拖拽文件运行:把本文件拖拽到node.exe上运行

    3.2命令行模式运行
    3.2.1进入命令行窗口(window运行cmd),进入存放图片的目录 x:\\xxxxx\你的图片目录
    3.2.2运行node命令node rename.js
    **/
    var path = require("path");
    var fs = require("fs");
    var rootPath = __filename;//获取图片目录

    var prefix = "n_",//新图片前缀
    startnum = 10,//新图片开始的序号
    outfile = "list.txt",//生成的文件名,包含原图片和对应的新图片信息
    tformat = [
    '{"title":"|tit|", "oldimg":"|oimg|", "newimg":"|nimg|"},\n',//生成的内容格式:对象
    '["|tit|", "|oimg|", "|nimg|"],\n',//生成的内容格式:数组
    '<li><img src="|nimg|" alt="|tit|" /></li>\n'//生成的内容格式:HTML
    ],
    oformat = tformat[0],
    imgReg = /\.(jpg|png|gif|bmp)$/i,
    tarr = [], alen, cindex=0;


    parseIndex(path.dirname(rootPath));

    //索引目录下的图片
    function parseIndex(dir){
    fs.readdir(dir,function(error,files){
    var len = files.length,
    imgArr = [];
    for(var i=0;i<len;i++){
    var filepath = dir+"\\"+files[i];
    //只处理图片
    if(imgReg.test(filepath)){
    imgArr.push(filepath);
    }
    }
    alen = imgArr.length;
    for(var j=0;j<alen;j++){
    renameImg(imgArr[j],j);
    }
    });
    }

    //单个图片处理
    function renameImg(filepath,n){
    fs.stat(filepath,function(err,stats){
    if(stats.isFile()){
    var filename = path.basename(filepath),
    parentDir =path.dirname(filepath),
    parentDirname = path.basename(parentDir),
    newName = prefix + (startnum + n) + "." + filename.split(".").pop(),
    newPath =parentDir+"\\"+newName;

    fs.rename(filepath,newPath);
    console.log(filename +" ==>> "+ newName);

    var _o = {
    "tit":filename.substring(0,filename.lastIndexOf(".")),
    "oimg":filename,
    "nimg":newName
    }
    tarr.push( oformat.replace(/\|tit\|/g,_o.tit).replace(/\|oimg\|/g,_o.oimg).replace(/\|nimg\|/g,_o.nimg) );

    cindex += 1;
    if(cindex===alen){
    var _ta = tarr[alen-1];
    tarr[alen-1] = _ta.substring(0,_ta.lastIndexOf(","))+"\n";
    writeInfo();
    }
    }
    });
    }

    //生成图片对应关系文件,存在则清空文件内容再重写
    function writeInfo(){
    fs.open(outfile,"w",function(e,fd){
    if(e) throw e;
    var istr = tarr.join("")
    if(/,\n/.test(oformat)) istr = '[\n'+istr+']\n';
    fs.write(fd, istr, 0, 'utf8', function(e){
    if(e) throw e;
    fs.closeSync(fd);
    })
    });
    }