Нет известного маршрута от cmyk до srgb при обработке изображений

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

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

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

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

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);
    }
  }
};

обязательно ознакомьтесь с подробной документацией: Sharp.dimens.io/en/stable/search.html?q=cmyk. однако похоже, что ваше проблемное изображение имеет цветовое пространство cmyk. Вы можете использовать gimp, чтобы изменить это для этого конкретного изображения и посмотреть, работает ли оно.

InsOp 17.11.2018 13:10

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

Darren 17.11.2018 13:12

Как вы, вероятно, уже заметили, это, скорее всего, ошибка в Гэтсби или регресс в Sharp, но более серьезная проблема заключается в том, что у Gatsby нет эффективной обработки ошибок для таких ситуаций. Вы также можете попробовать открыть запрос функции для этого, но не очевидно, что делать, когда вы запрашиваете преобразованное изображение, а вы не можете его получить.

Old Pro 22.11.2018 17:56
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
6
3
371
0

Другие вопросы по теме