Rumah >hujung hadapan web >tutorial js >Gunakan perpustakaan imageinfo imej untuk menambah tera air pada imej dalam kelompok dalam projek Node

Gunakan perpustakaan imageinfo imej untuk menambah tera air pada imej dalam kelompok dalam projek Node

青灯夜游
青灯夜游ke hadapan
2022-02-15 19:34:322946semak imbas

Bagaimana untuk menambah tera air pada imej dalam kelompok dalam Nodejs? Artikel berikut akan memperkenalkan kepada anda cara menggunakan pustaka imageinfo untuk menambah tera air pada gambar dalam kelompok dalam projek Nod saya harap ia akan membantu anda!

Gunakan perpustakaan imageinfo imej untuk menambah tera air pada imej dalam kelompok dalam projek Node

NodejTambah tera air pada imej dalam kelompok

Persediaan persekitaran

Pasang pustaka imej

npm install images

Pasang pustaka info imej

npm install imageinfo

Pelaksanaan

Dalam contoh ini, addimageinfo.js berada dalam direktori yang sama seperti marklogo.png, folder imagest dan folder node_modules.

Mengandungi subfail juga boleh dilaksanakan

kod JS

Jika anda menggunakannya secara langsung, anda perlu mengubah suai maklumat

var logomarkimg = images('./marklogo.png');//水印位置
var rmimgpath = "./imagest/img/";//添加图片文件加位置
var mark = "logo_";//另存图片前缀,若为""则替换原图片

Kod lengkap addimageinfo.js

//引用文件系统模块
var fs = require("fs");
//引用imageinfo模块
var imageInfo = require("imageinfo");
//引用images模块
var images = require('images');

var logomarkimg = images('./marklogo.png');//水印位置
var rmimgpath = "./imagest/img/";//添加图片文件加位置
var mark = "logo_";//另存图片前缀,若为""则替换原图片

function readFileList(path, filesList) {
    var files = fs.readdirSync(path);
    files.forEach(function (itm, index) {
        var stat = fs.statSync(path + itm);
        if (stat.isDirectory()) {
            //递归读取文件
            readFileList(path + itm + "/", filesList)
        } else {
            var obj = {};//定义一个对象存放文件的路径和名字
            obj.path = path;//路径
            obj.filename = itm//名字
            filesList.push(obj);
        }
    })
}
var getFiles = {

    //获取文件夹下的所有文件
    getFileList: function (path) {
        var filesList = [];
        readFileList(path, filesList);
        return filesList;
    },
    //获取文件夹下的所有图片
    getImageFiles: function (path) {
        var imageList = [];
        this.getFileList(path).forEach((item) => {
            var ms = imageInfo(fs.readFileSync(item.path + item.filename));
            ms.mimeType && (imageList.push(item))
        });
        return imageList;
    }
};
//获取文件夹下的所有图片
var photos = getFiles.getImageFiles(rmimgpath);
for (var i = 0; i < photos.length; i++) {
    var sourceImgpath = photos[i].path;
    var sourceImgname = photos[i].filename;
    var sourceImg = images(sourceImgpath + sourceImgname);
    var sWidth = sourceImg.width();
    var sHeight = sourceImg.height();
    var wmWidth = logomarkimg.width();
    var wmHeight = logomarkimg.height();

    images(sourceImg)
        // 设置绘制的坐标位置,右下角距离 10px
        .draw(logomarkimg, sWidth - wmWidth - 10, sHeight - wmHeight - 10)
        // 保存格式会自动识别
        .save(sourceImgpath + mark + sourceImgname + '');
}

Jalankan

Dalam direktori, jalankan arahan nod

node ./addimageinfo.js

Lihat kesan

Gunakan perpustakaan imageinfo imej untuk menambah tera air pada imej dalam kelompok dalam projek Node
Gunakan perpustakaan imageinfo imej untuk menambah tera air pada imej dalam kelompok dalam projek Node
Gunakan perpustakaan imageinfo imej untuk menambah tera air pada imej dalam kelompok dalam projek Node

Untuk lebih banyak nod pengetahuan berkaitan, sila lawati: tutorial nodejs!

Atas ialah kandungan terperinci Gunakan perpustakaan imageinfo imej untuk menambah tera air pada imej dalam kelompok dalam projek Node. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam