Задать вопрос
RomanDillerNsk
@RomanDillerNsk
JavaScript

Как изменить цвет png на node js?

Коллеги, доброго времени суток. Собственно кто сталкивался.

Делаю request на другой сервер и сохраняю на свой сервер картинку png. Она проста, прозрачный фон и фигура одного цвета.

После сохранения я отдаю ее на клиент. И таких картинок много. Можно ли изменить цвет этой картинки при сохранении????

На канвасе реализация есть у меня, но нужно на nodejs.

Пример картинки:

5c1870eb0ca6c415076037.png

Один цвет и прозрачный фон!
  • Вопрос задан
  • 633 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@GilbertAmethyst
Вероятно вам поможет это: https://github.com/oliver-moran/jimp/tree/master/p...
Предварительно нужна либа: https://github.com/oliver-moran/jimp

И есть готовое решение для замены цвета с помощью этого плагина, тут:
https://www.npmjs.com/package/replace-color
Ответ написан
AngReload
@AngReload
Кратко о себе
'use strict';

const request = require('request');
const fs = require('fs');
const PNG = require('pngjs').PNG;

const MY_COLOR = [0, 128, 255];

request('https://hsto.org/webt/5c/18/70/5c1870eb0ca6c415076037.png')
  .pipe(new PNG({
    filterType: 4
  }))
  .on('parsed', function () {
    for (var y = 0; y < this.height; y++) {
      for (var x = 0; x < this.width; x++) {
        var idx = (this.width * y + x) << 2;
        this.data[idx + 0] = MY_COLOR[0];
        this.data[idx + 1] = MY_COLOR[1];
        this.data[idx + 2] = MY_COLOR[2];
        this.data[idx + 3] = this.data[idx + 3];
      }
    }

    this.pack().pipe(fs.createWriteStream('result.png'));
  });
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы