Wie 'GM Composite-Gravitationszentrum change_image_url base_image_url' mit GM Node.js?Wie wird Composite mit gm node.js gemacht?
Wie Aufruf gm().command()
& gm().in()
oder gm().out()
die oben zu erreichen?
Wie 'GM Composite-Gravitationszentrum change_image_url base_image_url' mit GM Node.js?Wie wird Composite mit gm node.js gemacht?
Wie Aufruf gm().command()
& gm().in()
oder gm().out()
die oben zu erreichen?
ich, dass diese Art und Weise tue:
var exec = require('child_process').exec
var command = [
'-composite',
'-watermark', '20x50',
'-gravity', 'center',
'-quality', 100,
'images/watermark.png',
'images/input.jpg', //input
'images/watermarked.png' //output
];
// making watermark through exec - child_process
exec(command.join(' '), function(err, stdout, stderr) {
if (err) console.log(err);
});
als der aktive Betreuer von gm, ich schlage vor, Sie tun es auf diese Weise ... weil GM so ziemlich unnötig ist. Der einzige Unterschied ist, dass ich execFile anstelle von exec verwenden würde. –
auch, stellen Sie sicher, der Befehl beginnt mit 'gm composite' –
in diesem Beispiel, wo gm ist sogar verwendet? ... @ Jonathan könnten Sie mehr sagen, wo gm zu verwenden. wie das 'exec ('gm composite' + command.join ('') ..' –
gm installieren, (stellen Sie sicher, dass Sie bereits graphicsmagick
npm install gm
folgende ist mein Beispielcode zusammen zu fusionieren zwei Bilder installieren (verwenden gm.in
)
var gm = require('gm');
gm()
.in('-page', '+0+0')
.in('bg.jpg')
.in('-page', '+10+20') // location of smallIcon.jpg is x,y -> 10, 20
.in('smallIcon.jpg')
.mosaic()
.write('tesOutput.jpg', function (err) {
if (err) console.log(err);
});
Nach dem Kampf für eine Stunde, hier ist meine Lösung für Ihre Frage:
gm composite -gravity center change_image_url base_image_url
gm()
.command("composite")
.in("-gravity", "center")
.in(change_image_url)
.in(base_image_url)
.write(output_file, function (err) {
if (!err)
console.log(' hooray! ');
else
console.log(err);
});
Viel Glück! Hoffe, es wird auch für andere hilfreich sein :)
Nachdem ich das Vergnügen hatte, für den Moment auf eine Windows-Maschine beschränkt zu sein, löste ich dieses Problem, indem ich das "gm" -Modul überhaupt nicht verwendete. Aus irgendeinem Grund, obwohl ich Grafik-Magie über seinen Installer installiert habe, weigerte sich das Knotenmodul, es in meinen Umgebungsvariablen zu finden. Aber das könnte etwas damit zu tun haben, dass ich versuche, eine Anwendung mit Electron.js zu erstellen (die ähnlich zu Node.js ist, aber ihre "Gotcha's" hat).
var exec = require("child_process").execSync;
var commandArray = [
__dirname + "/bin/graphicsMagick/gm.exe", // the relative path to the graphics-magick executable
"-composite",
"-gravity",
"center",
__dirname + "/data/images/qr/logo-small.png", // relative paths to the images you want to composite
__dirname + "/data/images/qr/qr-webpage.png",
__dirname + "/data/images/qr/qr-webpage-logo.png" // relative path to the result
];
var returnValue = exec(commandArray.join(" "));
Für Windows denke ich, das ist die richtige tragbare Möglichkeit, es zu tun.
Warum verwendet niemand composite
Befehl? (https://github.com/aheckmann/gm)
var gm = require('gm');
var bgImage = 'bg.jpg',
frontImage = 'front.jpg',
resultImage = 'result.jpg',
xy = '+100+150';
gm(bgImage)
.composite(frontImage)
.geometry(xy)
.write(resultImage, function (err) {
if (!err) console.log('All done');
});
UPDATE Oh, sah ich Geschichte der Quelle dieser Methode. Es verfügbar wird nur auf 2014
Wenn Sie und merge, um die Größe, können Sie diese verwenden:
gm()
.in('-geometry', '+0+0')
.in('./img/img1.png')
.in('-geometry', '300x300+100+200')
.in('./img/img2.png')
.flatten()
.write('resultGM.png', function (err) {
if (err) console.log(err);
});
Konnten Sie herauszufinden, wie in Urls passieren arbeiten lassen Composite? Ich lese Sie konnten nur Dateipfade übergeben. – NateW