美文网首页
批量重命名图片,并且把名字存入json文件中

批量重命名图片,并且把名字存入json文件中

作者: IamaStupid | 来源:发表于2021-12-24 12:16 被阅读0次

    批量重命名中文图片,并且把名字存入json文件中

    需求:有几百张中文名字的图片,现在需要把图片的信息存入json文件,比如:

    [
      {title: '图片的中文名字', url: '图片的引用路径'}, ......
    ]
    
    1. 批量读取图片文件夹中的图片文件,然后把图片的名字取出来,存入数组(这就是我要的json结构),并且把那个数组打印出来,这里面还有一段ren 原图片名字 图片重命名的新名字这样的字符串,这是一个bat命令。
      这段代码我写在了main.js里面
    let requireSOb = []
    let renStr = ''
    const MapOb = require.context('./static/images/2021A', false, /\.(png|jpg)$/);
    const requireAll = (requireContext) => {
      // console.log('requireContext:', requireContext)
      let imgArr = []
      requireContext.keys().map((item) => {
        // console.log('item:', item)
        imgArr.push(item.replace('./', ''))
      })
      imgArr.sort((a, b) => {
        return a.localeCompare(b)
        // return a.charAt(0) - b.charAt(0)
        // return a.charAt(0).localeCompare(b.charAt(0))
      })
      console.log('imgArr:', imgArr)
      imgArr.forEach((item, i) => {
        let obx = {
            title: "",
            src: "images/2021B/",
            type: 2,
        }
        obx.title = item.replace('.jpg', '').replace('.png', '')
        let newName = (i > 9 ? i : ('0' + i)) + '.' + item.split('.')[1]
        obx.src = obx.src + newName
        renStr += `
        ren ${item} ${newName}
        `
        requireSOb.push(obx)
      })
    }
    requireAll(MapOb)
    
    1. 把数组里面的对象,拷贝出来,手动保存到json文件里面,这一步就算好了,但是图片是中文名字,我们还需要把图片重命名一下,比如:BBB汽车A型号.jpg 改成 01.jpg,操作方式如下:
      在图片路径下,新建一个txt文档,然后把renStr打印的字符串复制到新建的txt文件里面(ren是一个修改文件的bat命令),把后缀改成bat,保存。
      双击运行bat文件,发现中文图片改不了名字,命令失败了?
      编辑bat文件,另存为,把编码UTF-8,改为ANSI,保存,再双击运行,就可以修改图片名字了。

    通过上面两步,几百张中文名字的图片,就操作完毕了。

    如果是只修改图片名称,而且你的图片是有序的,只是想把中文去掉,可以利用excel自动增加的特性,快速获得图片名字列表,比如这样:


    image.png

    相关文章

      网友评论

          本文标题:批量重命名图片,并且把名字存入json文件中

          本文链接:https://www.haomeiwen.com/subject/amylqrtx.html