Отправка изображения в виде base64, закодированного в API Google Cloud Vision с использованием клиентской библиотеки nodejs

Я использую клиентскую библиотеку nodejs API облачного веб-обнаружения Google, и я хотел передать ему изображение в кодировке base64, но документации по нему нет. Я попробовал это, используя простые вызовы API, и это работает, но так как клиентская библиотека более аккуратна, мне было интересно, реализовали ли они и там. Любая идея?

2 ответа

Решение

Фактически вы должны иметь возможность отправлять изображения в кодировке base64 с помощью клиентской библиотеки API Cloud Vision для Node.js.

При использовании webDetection() метод из вашего ImageAnnotatorClient Например, request поле должно включать AnnotateImageRequest объект, который, со своей стороны, включает в себя image объект. Тот image Объект имеет структуру, представленную на этой странице документации. И, как вы можете видеть, он может включать в себя source где находится изображение или content представление в виде потока байтов.

Кроме того, если вы посмотрите на google.cloud.vision.v1.Image определение в прото-формате, вы увидите, что в качестве определения изображения он принимает либо источник, либо контент.

Поэтому обходным путем будет просто использовать API для передачи base64:

request({
    url: "https://vision.googleapis.com/v1/images:annotate",
    method: "POST",
    qs: {
      key: "your key"
    },
    json: true,
    body: {
  "requests": [
    {
      "image": {
        "content": place your base64 here(without prefix)
      },
      "features": [
        {
          "type": "WEB_DETECTION"
        }
      ]
    }
  ]
}
Другие вопросы по тегам