Come fare 'gm composite -gravity center change_image_url base_image_url' con GM Node.js?Come eseguire il composito con gm node.js?
Come chiamare gm().command()
& gm().in()
o gm().out()
per realizzare quanto sopra?
Come fare 'gm composite -gravity center change_image_url base_image_url' con GM Node.js?Come eseguire il composito con gm node.js?
Come chiamare gm().command()
& gm().in()
o gm().out()
per realizzare quanto sopra?
sto facendo che questo modo:
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);
});
come manutentore attivo di gm, ti suggerisco di farlo in questo modo ... perché gm è praticamente inutile. l'unica differenza è che userò 'execFile' invece di' exec'. –
inoltre, assicurati che il comando inizi con 'gm composite' –
in questo esempio in cui gm è usato anche? ... @ Jonathan potresti dire di più su dove usare gm. come questo 'exec ('gm composite' + command.join ('') .. ' –
Installare gm, (assicuratevi già installato GraphicsMagick
npm install gm
seguente è il mio codice di esempio di fondere immagine due insieme (utilizzare 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);
});
Dopo aver lottato per un'ora, ecco la mia soluzione per la tua domanda:
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);
});
Buona fortuna! Spero che possa essere d'aiuto anche agli altri :)
Avere il piacere di essere confinato in una macchina Windows per il momento ho risolto questo problema eventualmente non utilizzando affatto il modulo "gm". Per qualche ragione, anche se ho installato graphics-magick tramite il suo programma di installazione, il modulo del nodo ha rifiutato di trovarlo nelle mie variabili di ambiente. Ma questo potrebbe avere qualcosa a che fare con il fatto che sto cercando di creare un'applicazione con Electron.js (che è simile a Node.js ma ha il suo "gotcha").
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(" "));
Per Windows penso che questo sia il modo corretto per farlo.
Perché nessuno utilizza il comando composite
? (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, ho guardato la storia della fonte di questo metodo. Sarà disponibile solo su 2014
Se si desidera ridimensionare e unione, è possibile utilizzare questo:
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);
});
sono stati in grado di capire come passare in URL per ottenere composito a lavorare? Sto leggendo che potresti passare solo nei percorsi dei file. – NateW