Неправильные цвета в Eye of GNOME Image Viewer и Firefox [закрыто]

Вопрос или проблема

Вот код на Python, который создает график с 6 определенными цветами и сохраняет его в файл PNG:

import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np

# Определение цветовой палитры из 6 цветов
palette = ['#0d0887', '#6a00a8', '#b12a90', '#e16462', '#fca636', '#f0f921']
my_cmap = mpl.colors.ListedColormap(palette)

# Построение 6 цветов
a = np.arange(3*2).reshape(3,2)
plt.pcolormesh(a, cmap=my_cmap)

# Печать hex-значений цветов
for i in range(my_cmap.N):
    rgba = my_cmap(i)
    # rgb2hex принимает rgb или rgba
    print(f"'{mpl.colors.rgb2hex(rgba)}', ", end='')

# Сохранение изображения
plt.savefig('test.png')

График, созданный в Jupyter Notebook, содержит правильные цвета, и инструмент выбора цвета выдает те же значения в формате hex, которые определены в скрипте.

Цвета в Jupyter Notebook

Правильные выбранные цвета

Однако при открытии сохраненного файла PNG с помощью Eye of GNOME Image Viewer или Firefox, значения цветов, полученные с помощью инструмента выбора, отличаются:

Цвета в GNOME Image Viewer

Неправильные выбранные цвета

Цвета корректны при открытии файла с помощью Shotwell, Loupe (по умолчанию производит замену Eye of GNOME) или Chrome.

Информация о системе:

  • Ubuntu 24.04.1 LTS
  • GNOME Shell 46.0

Ответ или решение

Проблема отображения некорректных цветов в Eye of GNOME Image Viewer и Firefox, выявленная пользователем Ubuntu версии 24.04.1 LTS, перекликается с вопросами управления цветами и конфигурацией цветовых профилей в системах Linux. В описании проблемы указано, что цветовая палитра, заранее определенная и отображенная в Jupyter Notebook, демонстрирует корректные значения, которые идентифицируются инструментом цветового выбора. Однако при открытии сохраненного PNG-файла в специфических программах, таких как Eye of GNOME Image Viewer и Firefox, оттенки цвета отличаются от оригинальных.

Для понимания проблемы важно рассмотреть управление цветами и профилирование, которые могут повлиять на отображение изображений в различных приложениях:

Теория (Theory):

Управление цветом — это процессы, использующиеся для демонстрации цветов перечисленным устройствам или приложениям в соответствии с определенными стандартами. Это подразумевает использование цветовых профилей, которые содержат сведения об особенностях отображения цвета на конкретном устройстве. Поддержка цветовых профилей позволяет соблюсти четкость и точность цветов при их представлении на экранах.

Некорректное отображение цветов часто возникает в результате отсутствия или неверной интерпретации этих профилей, и это может проявляться в различных приложениях. Когда изображение сохранено в формате PNG, отсутствие корректного встроенного цветового профиля может привести к неправильной обработке цветовой информации в некоторых программах просмотра или веб-браузерах.

Пример (Example):

Возьмем пример из описания проблемы: Python-скрипт генерирует изображение в Jupyter Notebook и сохраняет его в PNG-файл с определенной цветовой палитрой. Изображение корректно отображается в Jupyter Notebook, поскольку matplotlib управляет внутренней цветовой обработкой, за которую отвечает matplotlib заданного ПК.

Однако, после сохранения, разные приложения, такие как Firefox и Eye of GNOME Image Viewer, используют разные подходы к обработке цветовых данных. Например, Firefox может применять свои внутренние механизмы управления цветом или опираться на настройки системы. Это приводит к расхождению между ожидаемыми и фактическими результатами. При этом другие приложения, как Shotwell или Chrome, демонстрируют корректные цвета, что свидетельствует об их способности правильно интерпретировать внутренние цветовые данные без конфликта с системным управлением цветом.

Применение (Application):

Для решения проблемы важно рассмотреть несколько возможных путей:

  1. Проверка цветовых профилей: Убедитесь, что цветовой профиль в PNG-файле сохранен корректно. Включение или корректировка цветовых профилей может быть осуществлено с помощью таких инструментов, как ImageMagick или графических редакторов вроде GIMP. Например, вы можете использовать команду convert test.png -profile sRGB.icm test_converted.png с ImageMagick для внедрения стандартного цветового профиля.

  2. Настройки приложений: Проверьте настройки управления цветами в Firefox и настройте их для использования системного управления цветом. Это может включать отключение или настройку встроенных профилей в браузере через about:config.

  3. Обновление ПО: Убедитесь в использовании последних версий программного обеспечения, как указано в информации о системе (Ubuntu 24.04.1 LTS, GNOME Shell 46.0). Поскольку это устаревшая версия Ubuntu, доступные обновления и исправления ошибок могут быть ограничены.

  4. Альтернативные программы: Используйте программы, которые корректно поддерживают цветовое профилирование. Если Eye of GNOME вызывает проблему, попробуйте использовать Shotwell или Loupe, которые по описанию отображают цвета правильно.

  5. Проверка системного управления цветом: Убедитесь в корректной настройке и применении системных цветовых профилей. Это может включать приоритеты применения системных настроек и стандартных ICC-профилей.

Эти шаги должны помочь в обеспечении правильного отображения цветов в различных приложениях, минимизируя риски расхождения визуальных данных из-за причуд управления цветами и внутренних настроек программ.

Оцените материал
Добавить комментарий

Капча загружается...