ホームページ >ウェブフロントエンド >jsチュートリアル >Images+imageinfo ライブラリを使用して、Node プロジェクトの画像にバッチで透かしを追加します。

Images+imageinfo ライブラリを使用して、Node プロジェクトの画像にバッチで透かしを追加します。

青灯夜游
青灯夜游転載
2022-02-15 19:34:322934ブラウズ

Nodejs で画像にウォーターマークをバッチで追加するにはどうすればよいですか?次の記事では、画像 imageinfo ライブラリを使用して、Node プロジェクトで画像にウォーターマークをバッチで追加する方法を紹介します。

Images+imageinfo ライブラリを使用して、Node プロジェクトの画像にバッチで透かしを追加します。

#Nodejs画像にウォーターマークを一括で追加する

環境の準備

画像ライブラリのインストール

npm install images

画像情報ライブラリのインストール

npm install imageinfo

実装

この例では、addimageinfo.js は、marklogo.png、imagest フォルダー、node_modules フォルダーと同じディレクトリにあります。

サブファイルを含むものも実装できます

JS コード

直接使用する場合は、情報を変更する必要があります

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

完全なコード 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 + '');
}

実行

ディレクトリで、ノード コマンド

node ./addimageinfo.js
#を実行します。

##効果を表示

Images+imageinfo ライブラリを使用して、Node プロジェクトの画像にバッチで透かしを追加します。
Images+imageinfo ライブラリを使用して、Node プロジェクトの画像にバッチで透かしを追加します。
Images+imageinfo ライブラリを使用して、Node プロジェクトの画像にバッチで透かしを追加します。ノード関連の知識の詳細については、次のサイトを参照してください。 :

nodejs チュートリアル

!

以上がImages+imageinfo ライブラリを使用して、Node プロジェクトの画像にバッチで透かしを追加します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。