在Node.js应用程序中调整图像大小

时间:2018-12-27 08:12:23

标签: node.js

我正在开发一个nodejs应用程序,其中用户正在创建他的画廊,现在,因为用户正在通过ios设备使用该应用程序。因此,图像即将传入10 MB。如何调整图像大小以快速加载到应用程序中

2 个答案:

答案 0 :(得分:1)

首先安装imagemagick软件包。并使用multer上传图片。上传文件后,您可以在服务文件中调整其大小。

var im = require('imagemagick')
, path = require('path')

var convertArgs = [
'./images/tes.jpg',
'-resize',
300 + 'x' + 300,
'./images/thumbnail_test.jpg'
];

im.convert(convertArgs, function(err, metadata){
if (err) throw err;

console.log('success! Checkout your new thumb: ');
});

有关完整的详细信息和源代码,请访问以下链接:https://www.jsonworld.com/demo/detail/50/nodejs/how-to-resize-image-in-nodejs

答案 1 :(得分:0)

您可以尝试与imagemingulp-image-resize一起使用。确保在系统上安装了 GraphicsMagick ImageMagick ,并在PATH中正确设置了

imageOptimized.js

var Imagemin = require('imagemin'),
    imageResize = require('gulp-image-resize'),
    Q = require('q');

exports.optimizeImage = function (path) {
    var resultDef = Q.defer(),
        options = {
            interlaced: true,
            optimizationLevel: 7,
            progressive: true
        };
    new Imagemin()
        .src(path)
        .use(Imagemin.jpegtran(options))
        .use(Imagemin.gifsicle(options))
        .use(Imagemin.optipng(options))
        .use(Imagemin.svgo({plugins: options.svgoPlugins || []}))
        .use(imageResize({
            width: 500,
            height: 500,
            upscale: false,
            imageMagick: true
        }))
        .run(function (err, files) {
            if (err) {
                resultDef.reject(err);
            } else {
                if (files.length) {
                    resultDef.resolve(files[0].contents);
                } else {
                    resultDef.reject({});
                }

            }
        });
    return resultDef.promise;
};