Last active
October 30, 2015 08:17
-
-
Save seektan/3f9d54abd6f207fdfedf to your computer and use it in GitHub Desktop.
批量处理用中文命名的图片,获取新旧文件名和图片对应关系,用于页面展示
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
作用 | |
批量处理用中文命名的图片,获取新旧文件名和图片对应关系,用于页面展示 | |
使用说明 | |
1.把本段代码存为rename.js文件文件放到需要重命名的图片文件夹 | |
2.根据情况修改下面参数中的图片前缀(prefix),选择生成数据的格式(oformat),图片开始的序号(startnum) | |
3.用node运行本js文件 | |
3.1拖拽文件运行:把本文件拖拽到node.exe上运行(需先安装nodejs) | |
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); | |
}) | |
}); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1、数组对象 | |
[ | |
{"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"} | |
] | |
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> | |
<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> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment