javascript - gm node.js 无法调整大文件大小的图像

标签 javascript node.js express imagemagick gm

我正在使用 gm对于带有 express.js 的 linux 服务器上的 node.js。它适用于小于 2MB 文件大小的图像。但是一旦超过,代码就会停止工作。这是代码

gm('public/'+article.page.image)
    .resize(width,height)
    .quality(80)
    .write('public/article_image/'+ folder + '/' + "something.jpg", function(err){
        if (err){
            console.log('error occurred')
            console.log(err)
        }
        else{
            console.log('resized image 16')
            somefunction(16, true);
        }
   })

我遇到的错误是

Error: Command failed:
at ChildProcess.onExit (/root/patarboi/node_modules/gm/lib/command.js:301:17) 
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:191:7)
at maybeClose (internal/child_process.js:920:16)
at Socket.<anonymous> (internal/child_process.js:351:11)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at Pipe._handle.close [as _onclose] (net.js:497:12) code: null, signal: 'SIGSEGV'

如何解决?

最佳答案

问题是由于 imagemagick 的分割错误引起的。我使用的是旧版本的 imagemagick。而不是像这样安装。

sudo apt-get install ImageMagick

here找到最新版本的imagemagick .然后像下面这样安装它。目前最新版本为ImageMagick-7.0.7-22.tar.gz。首先建立依赖关系。然后从url中获取。

$sudo apt-get install build-essential checkinstall && apt-get build-dep imagemagick -y   
$sudo wget http://www.imagemagick.org/download/ImageMagick-7.0.7-22.tar.gz

现在解压

$sudo tar xzvf 7.0.7-22.tar.gz

移动到目录

cd ImageMagick-7.0.7-22

检查配置 。/配置 现在构建代码

make clean
make
checkinstall
ldconfig /usr/local/lib

检查是否安装完成

convert -version

关于javascript - gm node.js 无法调整大文件大小的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48557587/

相关文章:

javascript - 为什么传单搜索框这么容易就消失了?以及如何保留它?

node.js - multer - req.file 未定义。

node.js - 使用 Angular 时有没有办法从服务器端加载部分 View ?

javascript - 禁止自动路由到index.html

javascript - Backbone Handlebars 变量返回 0(零)

javascript - Highcharts 中样条图表中的标记/圆圈

javascript - 无法将作为参数传递给 jQuery 的对象数组的值附加到 html 元素

node.js - Mongoose 4 个套接字关闭

session - Node.JS/Express.JS CouchDB session 存储

javascript - Node 强大的单选按钮