Я не очень знаком с node-gm, но мне кажется, что метод .drawCircle(x1, y1, x2, y2)
просто добавляет аргумент командной строки -draw "circle x1,y1 x2,y2"
. Поэтому после 2527 команд рисования вы превышаете буфер аргументов.
С ImageMagick, если у вас большой список команд рисования, вы должны записать в файл и сказать команде рисования, чтобы прочитать из него.
Файл будет выглядеть примерно так ...
# circles.txt
circle x1,y1 x2,y2
circle x1,y1 x2,y2
circle x1,y1 x2,y2
circle x1,y1 x2,y2
И ссылка на файл с префиксом at-symbol (@
).
convert ... -draw @cicles.txt ...
Таким образом, в качестве альтернативы, вы можете создать временный файл, написать команды рисования, а затем позвонить ..
const tile = gm('./blank-tile.png')
.resize(500, 500)
.fill("red")
.draw("@circles.txt");
Однако я не уверен, поддерживает ли node-gm это, и / или многие современные системы отключают MVG
& TXT
с протоколами безопасности по умолчанию. Стоит исследовать.