zoukankan      html  css  js  c++  java
  • Node.js读写文件之批量替换图片

       问题:文件夹A中有大量图片文件,需要用另外一个图片替换掉A中图片,但是命名保持不变。

       手工的做法如下:

       1)浏览器打开图片->2)另存为->3)目标文件夹->4)找到一个图片->5)替换->6)确定 

        然后,重复步骤2)和之后的步骤。不小心会漏掉或重复。

     这么麻烦,使用node.js来处理改如何呢?代码如下:

     1 var fs=require('fs'),    
     2      cp=require('child_process');
     3 var url='Moriarty.jpg'
     4 var rs=fs.readFileSync(url,{encoding:'hex',flag:'r'})
     5 var write=(e)=>{  
     6     fs.writeFileSync(e,rs,{encoding:'hex',flag:'w'})      
     7   }
     8 var  buf_files=cp.execSync('ls 160906/*.jpg')
     9 var  arr_files=buf_files.toString().trim().split(/s+/)
    10 arr_files.forEach(write)

    也可以用glob和fs模块来完成:代码如下: 

     1 var glob=require('glob'),
     2     fs=require('fs')
     3 var url='Moriarty.jpg'
     4 var rs=fs.readFileSync(url,{encoding:'hex',flag:'r'})
     5 var write=(e)=>{  
     6     fs.writeFileSync(e,rs,{encoding:'hex',flag:'w'})      
     7   }
     8 glob('160906/*.jpg',(err,files)=>{
     9      files.forEach(write)
    10    })

    效果如下图:

     文件原图片:

     

    文件新图片:(图片文件名未变)

      声明:以上内容仅供学习交流。

  • 相关阅读:
    Linux开机流程【原创】
    Linux下无需按下回车(无阻塞)读取输入键值
    Sql Server 列转行 Pivot使用
    mysql
    mysql
    mysql
    CI
    mysql
    Snagit: Scrolling is not working
    Something about SnagIt
  • 原文地址:https://www.cnblogs.com/zengnificant/p/5847446.html
Copyright © 2011-2022 走看看