Tag: graphicsmagick

Graphicsmagick:如何绘制文字以适应特定的盒子(宽度/高度)

我正在使用GraphicsMagick的node.js 模块 。 在我的节点JS应用程序中,我需要添加一个文本标签到现有的图像,例如:1)如果文本比图像的大小,文本自动换行到下一行2)如果文本不能为了适应图像,文本的字体大小被自动调整(缩小)以适合图像的框 GraphicsMagick的node.js模块提供的API是: gm(“img.png”)。drawText(x,y,text [,gravity]) 但是,这并没有提供任何选项来根据上述两个要求将文本放入框中。 如果我单独使用这个API,我将需要手动中断文本,并更改​​文本字体大小以适应图像,但即使如此,我也需要先测量文本大小。 有没有办法做到这一点? 有什么build议么? 为了便于说明,下图显示了三个不同的文本string,需要放入相同大小的文本框中。 希望澄清。

合并2个图像与node.js和gm

我想合并2个图像使用node.js和gm节点。 事实上,我想在较大的图像上放置一个较小的图像在坐标x,y上。 我已经allraedy某些工作append(),但我不能select把第二个图像上面的第一个 这是我的js代码的追加。 gm('img/vector/test.svg').append('img/base/test.png').write('img/final/test.png', function(err, stdout, stderr, command){ if (err){ console.log('image conversion error!'); console.log(err); console.log(command); }else{ console.log('image converted with command :'); console.log(command); } })

如何在ES6中导入节点模块传递子类参数?

在JS中,我需要在节点模块gm(我想用imageMagick而不是默认的graphicsMagick),而传递这样的参数: var gm = require('gm').subClass({ imageMagick: true }); 我怎样才能在ES6中做到这一点? import gm from "gm"; gm.subClass({ imageMagick: true }); 不起作用,因为gm默认为没有安装的GraphicsMagick。

如何使用Node.js gm graphicsMagick包装获取像素

我目前正在试图找出如何使用Node.js gm graphicsMagic包装获取单个像素。 我的总体目标是在图像中获得百分比前10位的颜色。 我正在尝试写几个函数来获得我的结果,但是对于我来说,我无法弄清楚使用gm包装来获取像素本身。 看来,GraphicsMagick有一个GetPixels方法,但我没有运气能够调用它。 任何帮助将不胜感激。 谢谢!

如何使用CollectionFS和graphicsmagick创build一个填充meteor某个区域的缩略图

现在我在这里使用代码: https : //github.com/CollectionFS/Meteor-CollectionFS#basic-example假设我想要一个缩略图100×100。 但是说我的图片是400×200,上面的代码会产生一个100×50的缩略图。 在这个例子中我想要发生的事情是将图像调整到200×100,然后剪裁到100×100。 我怎么做? 我怎样才能得到高度和宽度? 我知道我可以使用gm的大小函数,但是我不能把所有的callback包裹起来。

Node.js GraphicsMagic:检查安装和function

我正在使用GraphicsMagic ( Link )的Node.js模块gm ( Github )。 如何确定gm模块所需的GraphicsMagic软件是否在当前node.js机器上安装且function完整 ? (我想检查一下我的服务器的初始化过程)

使用graphicsmagick在nodejs上创build图像

我需要一种方法来通过node.js在graphicsMagick上创build一个图像 通常我可以pipe理这个; gm convert -background transparent -pointsize 30 -gravity Center label:türkçee HEEEEEY.png 我需要node.js中的这个input的等价物。 var gm = require('gm'); gm.background('transparent') .gravity('Center') .fontSize(30) .drawText('Test') .write('HEEEY.png') PS:我不想给图像大小作为参数。 (对不起我的英语不好)

我如何使用node.js和gm创buildpdf的缩略图

我使用meteor(它是build立在节点上)和CollectionCFS(它允许我使用gm [GraphicsMagick]进行拇指钉钉)。 我做了以下操作,让它自动创build上传图片的缩略图: new FS.Store.FileSystem("thumbs", { transformWrite: function(fileObj, readStream, writeStream) { gm(readStream, fileObj.name()).resize('100', '100').stream().pipe(writeStream); }, path: "/Volumes/Public/Thumbs", }) transformWrite函数接收readStream(原始图像),对其进行修改并将结果传递给writeStream。 我怎么能创buildPDF的缩略图?

如果条件添加graphics魔术师命令

我有以下命令: gm('input.jpg') .crop(500, 500, 10, 10) .write('output.jpg', function (err) { if (err) { console.log(err) } else { console.log('Success') } }) 我想添加一个条件,而不必写2个不同的命令,所以它会是这样的: var overlay = true gm('input.jpg') .crop(500, 500, 10, 10) if(overlay == true){ .draw('image Over 0,0 750,750 overlay.jpg') } .write('output.jpg', function (err) { if (err) { console.log(err) } else { console.log('Success') } }) 我知道上面的代码不会运行,我正在寻找一个可以工作的build议,没有2个不同的GM命令

通过gm通过Express.js上传stream文件以消除双重写入

我正在使用Express.js并有一个上传图像的路线,然后我需要resize。 目前我只是让Express写入文件到磁盘(我认为使用node-formidable下),然后调整使用gm (http://aheckmann.github.com/gm/)写入第二个版本到磁盘。 gm(path) .resize(540,404) .write(dest, function (err) { … }); 我已经读过,你可以在将node-formidable文件stream写入磁盘之前获得一个node-formidable ,因为gm可以接受一个stream而不是一个path,所以我应该可以通过消除双重写到磁盘。 我想我需要覆盖form.onPart但我不知道在哪里(应该做Express中间件?),我不知道如何得到一个form或与该part究竟做什么。 这是我在几个地方见过的代码框架: form.onPart = function(part) { if (!part.filename) { form.handlePart(part); return; } part.on('data', function(buffer) { }); part.on('end', function() { } } 有人可以帮我把这两块放在一起吗? 谢谢!