Умножьте drawText из массива с помощью node-gm

Иметь такой массив:

var myArray=[
  { title: 'Some title', time: 'Some time'},
  ...
  ];

И код узла-gm:

gm('bg.png')
  .fill("#ffffff")
  .font("Phenomena-Bold.otf", 27)
  .drawText(225, 75, "Some text")
  .write("result.png", function (err) {
    if (!err) console.log('done');
  });

Необходимо добавить каждый элемент из myArray в.drawText() со смещением оси Y до 45 пикселей. Есть идеи?

1 ответ

Решение

Вы спросили, я написал и проверил это.

Взять (:

const
  gm = require('gm');

const myArray = [
  { title: 'Some title', time: 'Some time'},
  { title: 'Second title', time: 'second time'}
];

const
  image = gm('bg.jpg')
            .fill('#ffffff')
            .font('Arial', 27) // I didn't wanted to play with fonts, so used normal default thing (:
            .drawText(225, 75, "Some text");

let x = 225;
let y = 75;
for(const text of myArray) {
  y += 45;
  image.drawText(x, y, text.title);
}
image.write('result.png', err => {
  if(err) return console.error(err);
  console.log('done');
});

доказательство работы

Другие вопросы по тегам