Как прочитать и сохранить изображение base64 с помощью fs

Измените свою службу, чтобы использовать BehaviorSubject вместо простой boolean и воспользоваться операциями rxjs pipe и tap, чтобы вы могли установить флаг spinner в самой службе, а не переключать в каждый потребительский компонент обслуживания.

@Injectable()
export class PersonsService {

  public showSpinner: BehaviorSubject = new BehaviorSubject(false);
  public readonly apiUrl = "https://api.github.com/users";

  constructor(private _http: HttpClient) { }

  getAll(): Observable {
    this.showSpinner.next(true);
    return this._http.get(this.apiUrl).pipe(
      tap(response => this.showSpinner.next(false), 
      (error: any) => this.showSpinner.next(false))
    );
  }
}

Вы можете использовать трубу async для доступа к showSpinner

    {{response | json}}
  

Демонстрация

1
задан Henrique Ramos 19 January 2019 в 20:27
поделиться

1 ответ

Вы можете преобразовать изображение из представления base64 в его двоичное представление, преобразовав строку в Buffer - new Buffer(b64_image, 'base64') (подробнее об этом в этого ответа ). Затем вы можете сохранить буфер в локальной файловой системе, используя fs.writeFile (на случай, если вы хотите сохранить файл асинхронно) или fs.writeFileSync (на случай, если хотел сохранить файл синхронно).

То, что вы пытаетесь сделать, может быть выполнено примерно так:

const fs = require("fs");

const base64Image = "BASE_64_IMAGE";
const imageBuffer = new Buffer(base64Image, "base64");

fs.writeFileSync("image.png", imageBuffer);
0
ответ дан Itai Steinherz 19 January 2019 в 20:27
поделиться
Другие вопросы по тегам:

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