我正在开发一个nodejs应用程序,其中用户正在创建他的画廊,现在,因为用户正在通过ios设备使用该应用程序。因此,图像即将传入10 MB。如何调整图像大小以快速加载到应用程序中
答案 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)
您可以尝试与imagemin
和gulp-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;
};