如何使用graphicsmagick麦田圈图片?
(使用png透明背景外圈)
我在 中使用 graphicsmagick node.js,还是有任何其他方法可以做到这一点node.js?
我有一个 8.5x11、300dpi 的 PDF。它在 PDF 的左上角有一个 UPC 标签。想象一下,一张纸上可能有 30 个标签,但我们只有 1 个标签。
我正在尝试将 PDF 裁剪为仅 1 标签的大小。到目前为止我已经得到了这个
gm convert -density 300 single.pdf out.pdf
Run Code Online (Sandbox Code Playgroud)
这不会进行任何裁剪。当我裁剪为 300x100 时,它会生成一个包含 30000 页的 20MB 文件。
我不知道如何使用-crop来实际裁剪到正确的尺寸。我需要它的尺寸为 3.5 英寸 x 1.125 英寸。
如果有人问这个问题,我深表歉意,但我正在努力寻找答案。
我正在将 Node GM 包与 ImageMagick 一起使用。因为我的印象是label那里唯一的作品。
我想拍摄一张图像并label在其顶部添加一个。
我最初是用来drawText()实现这一点的,但是我需要利用labelIM 中的自动调整大小。我所拥有的是:
im(path.join(__dirname, '../public/images/imgen/backgrounds/', color + '_' + type + '.png'))
.gravity('West')
.fill('#FFFFFF')
.font(path.join(__dirname, '../public/fonts/Lato/Lato-Bold.ttf'))
.out('label: ' + text)
.write(
path.join(__dirname, '../public/images/imgen/generated/', fileName), function(err) {
if (!err) {
// If the write was successful then redirect to the new image
res.redirect('/images/imgen/generated/' + fileName);
} else {
console.error(err);
res.status(500).end();
}
});
Run Code Online (Sandbox Code Playgroud)
上面生成了两张图像而不是一张。我猜我需要创建一个空图像并将该图像插入作为背景。但我不知道如何做到这一点。
im(1080, 1080)
.gravity('West')
.fill('#FFFFFF')
.font(path.join(__dirname, '../public/fonts/Lato/Lato-Bold.ttf'))
// Add the image as a background …Run Code Online (Sandbox Code Playgroud) 我想将图像格式转换为特定质量的 JPG
由于某种原因以下命令不起作用,我得到的只是 NULL
gm convert -quality 80 '/tmp/phpK31vNK' JPEG:'/tmp/phpK31vNK' && cat '/tmp/phpK31vNK'
然而,以下命令工作正常,但graphicsmagick 设置默认质量为 75
gm convert '/tmp/phpK31vNK' JPEG:'/tmp/phpK31vNK' && cat '/tmp/phpK31vNK'
我在windows中运行nodejs并使用npm安装gm.
var readStream = fs.createReadStream(__dirname + '/../temp/a.jpg');
gm(readStream, 'a.jpg').write(__dirname + '/../temp/b.png', function (err) {if (err) console.log(err);});
然后我得到了消息:
{ [Error: Command failed: CreateProcessW: ?????????????????] code: 127, signal: null }
gm是否支持windows或我该如何处理?
我正在使用GraphicsMagick节点来获取源图像,调整大小,裁剪然后应用掩码:
gm(tempfile)
.quality(90)
.resize(null, 38)
.gravity('Center')
.crop(20, 34)
.mask('./public/assets/mask.png')
.write(thumb, function (err) {
if (err) throw err
console.log('success')
})
Run Code Online (Sandbox Code Playgroud)
运行后,图像调整大小并成功裁剪,但不应用蒙版.不会抛出任何错误(即控制台打印"成功").
附上这也是我正在尝试使用的蒙版图像.我希望图像只能在黑色部分上绘制.我尝试过使用透明的png(gm文档说它基于alpha通道的掩码),以及黑白jpg,但结果是一样的.

我确定我错过了一些明显的东西,但我很难过谢谢!
我想从Image Magick切换到Graphics Magick.以下代码将图像转换为PNG:
var ImageMagick = require("imagemagick");
// convert the image
ImageMagick.convert([
"input.jpg"
, '-resize'
, "200x100"
, "output.png"
], function(err, stdout){
if (err) { throw err; }
console.log(">> Done");
});
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做但使用Graphics Magick?