При обработке изображений неизвестен маршрут от 'cmyk' до 'srgb' - PullRequest
0 голосов
/ 16 ноября 2018

CodeSandbox - https://codesandbox.io/s/jj597mrvmw

У меня проблема с некоторыми данными, возвращенными с внешнего API на мой GatsbyJS / ReactJS сайт.

Точнее говоря, проблема заключается в обработке изображений с gatsby-image и gatsby-plugin-sharp с использованием API ...GatsbyImageSharpFluid для GraphQL запросов.

Из 1000 изображенийкажется, что только 1 является проблематичным, возвращая ошибку

Errors:
  icc_transform: no input profile
  vips_colourspace: no known route from 'cmyk' to 'srgb'

Я мог бы просто отфильтровать это изображение, но обеспокоен тем, что будущие изображения в виде обновлений API могут вызвать ту же проблему.

Как мне

  1. Исправить эту ошибку, представленную sharp, чтобы изображение могло быть обработано?или
  2. filter изображений, которые возвращают эту ошибку при обработке createRemoteFileNode, или
  3. Пропуск проблемных изображений в catch (error) или
  4. Любые другие мысли / решения

createRemoteFileNode в пределах gatsby-node.js как

exports.sourceNodes = async ({ actions, store, cache, createNodeId }) => {
  const { createNode, createNodeField } = actions;
  const { data } = await axios.get(API_URI);

  for (const event of data._embedded.events) {
    let fileNode;
    let output = [];
    let filterResults = event.images.filter(e => e.width >= 1900);
    output.push(...filterResults);
    try {
      fileNode = await createRemoteFileNode({
        url: output[0].url,
        cache,
        store,
        createNode,
        createNodeId,
      });
      await createNodeField({
        node: fileNode,
        name: 'EventImage',
        value: 'true'
      });
      await createNodeField({
        node: fileNode,
        name: 'name',
        value: event.name
      });
    } catch (error) {
      console.warn('error creating node', error);
    }
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...