- Предупреждение libpng: iCCP: известный неправильный профиль sRGB
- Решение
- пример
- предупреждение: libpng warning: iCCP: known incorrect sRGB profile
- 3 ответа 3
- libpng warning: iCCP: known incorrect sRGB profile #101
- Comments
- RobbiNespu commented Dec 7, 2015
- brickgao commented Dec 16, 2015
- R34skyline commented Oct 27, 2016
- dirtyd209 commented Feb 17, 2017
- kuna893 commented Mar 20, 2017
- arifai commented Apr 27, 2017
- savio-code commented May 2, 2017
- savio-code commented May 2, 2017
- hbsaul commented May 12, 2017 •
Предупреждение libpng: iCCP: известный неправильный профиль sRGB
Я пытаюсь загрузить изображение PNG с помощью SDL, но программа не работает, и эта ошибка появляется в консоли
Предупреждение libpng: iCCP: известен неправильный профиль sRGB
Почему появляется это предупреждение? Что я должен сделать, чтобы решить эту проблему?
Libpng-1.6 более строг в проверке профилей ICC, чем предыдущие версии. Вы можете игнорировать предупреждение. Чтобы избавиться от него, удалите кусок iCCP из изображения PNG.
Некоторые приложения обрабатывают предупреждения как ошибки; Если вы используете такое приложение, вы должны удалить чанк. Вы можете сделать это с любым из множества редакторов PNG, таких как ImageMagick’s
Чтобы удалить недействительный кусок iCCP из всех файлов PNG в папке (каталоге), вы можете использовать mogrify из ImageMagick:
Это требует, чтобы ваш ImageMagick был собран с libpng16. Вы можете легко проверить это, запустив:
Если вы хотите выяснить, какие файлы необходимо исправить, а не обрабатывать их вслепую, вы можете запустить
где -n означает не переписывать файлы, а -q означает подавить большую часть вывода, за исключением предупреждений. Извините, в pngcrush пока нет возможности подавить все, кроме предупреждений.
Бинарные выпуски ImageMagick находятся здесь
Для проектов Android (Android Studio) перейдите в папку res .
Используйте pngcrush для удаления неправильного профиля sRGB из файла png:
- -ow перезапишет входной файл
- -rem allb удалит все вспомогательные фрагменты, кроме tRNS и gAMA
- -reduce выполняет уменьшение цвета без потерь или глубины цвета
В выводе консоли вы должны увидеть Removed the sRGB chunk и, возможно, больше сообщений об удалении чанка. В итоге вы получите меньший, оптимизированный файл PNG. Поскольку команда перезапишет исходный файл, обязательно создайте резервную копию или используйте контроль версий.
Решение
Неправильный профиль может быть исправлен с помощью:
- Открытие изображения с неправильным профилем с помощью QPixmap :: load
- Сохранение изображения обратно на диск (уже с правильным профилем) с помощью QPixmap :: save
Примечание. В этом решении используется библиотека Qt.
пример
Вот минимальный пример, который я написал в C++, чтобы продемонстрировать, как реализовать предложенное решение:
Полный исходный код приложения с графическим интерфейсом на основе этого примера доступен на GitHub.
Вы также можете исправить это в фотошопе… У меня есть CC2015, но я уверен, что это то же самое для всех версий.
- Откройте файл .png.
- Файл → Сохранить как и в диалоговом окне, который открывается снимите флажок “ICC-профиль: sRGB IEC61966-2.1”
- Снимите флажок “Как копировать”.
- Смело сохраняйте свой оригинальный .png.
- Двигайтесь своей жизнью, зная, что вы удалили из этого всего лишь немного зла.
Чтобы добавить Гленну отличный ответ, вот что я сделал, чтобы найти, какие файлы были неисправны:
Я использовал find и xargs, потому что pngcrush не смог обработать множество аргументов (которые были возвращены **/*.png ). -print0 и -0 необходимы для обработки имен файлов, содержащих пробелы.
Затем iCCP: Not recognizing known sRGB profile that has been edited поиск в выходных данных следующих строк: iCCP: Not recognizing known sRGB profile that has been edited .
И для каждого из них запустите mogrify, чтобы исправить их.
Это предотвращает изменение фиксации каждого png файла в репозитории, если только некоторые из них были изменены. Плюс у него есть преимущество, чтобы показать, какие именно файлы были неисправны.
Я проверял это на Windows с консолью Cygwin и оболочкой zsh. Еще раз спасибо Гленну, который поставил большую часть вышеупомянутого, я просто добавляю ответ, поскольку его обычно легче найти, чем комментарии 🙂
Благодаря фантастическому ответу Гленна, я использовал функциональность ImageMagik “mogrify *.png”. Однако у меня были изображения, спрятанные в подпапках, поэтому я использовал этот простой скрипт Python, чтобы применить его ко всем изображениям во всех подпапках и подумал, что это может помочь другим:
Существует более простой способ решить эту проблему с Mac OS и Homebrew:
Установите homebrew, если он еще не установлен
или сделать это с каждым файлом в текущем каталоге:
Он создаст фиксированную копию для каждого файла png в текущем каталоге и поместит его в подкаталог tmp. После этого, если все в порядке, вам просто нужно переопределить исходные файлы.
Другой совет – использовать приложения Keynote и Preview для создания значков. Я рисую их с помощью Keynote, размером около 120×120 пикселей, поверх слайда с белым фоном (возможность сделать редактируемые полигоны великолепной!). Перед экспортом в Preview я рисую прямоугольник вокруг значка (без заливки или тени, только контур, размером около 135×135) и копирую все в буфер обмена. После этого вам просто нужно открыть его с помощью инструмента “Просмотр”, используя “Новый из буфера обмена”, выделить область размером 128×128 пикселей вокруг значка, скопировать, снова использовать “Новый из буфера обмена” и экспортировать его в PNG. Вам не нужно запускать инструмент pngfix.
некоторая справочная информация об этом:
Некоторые изменения в версии libpng 1.6+ вызывают предупреждение или даже неправильно работают с исходным профилем HP/MS sRGB, к следующему stderr: предупреждение libpng: iCCP: известный неправильный sRGB profile В старом профиле используется точка белого D50, где D65 является стандартным. Этот профиль не редкость, он используется Adobe Photoshop, хотя по умолчанию он не был встроен в изображения.
Обнаружение ошибок в некоторых кусках улучшилось; в частности, iCCP chunk reader теперь делает довольно полную проверку базового формата. Некоторые плохие профили, которые были ранее приняты, теперь отвергаются, в в частности, очень старый сломанный профиль Microsoft sRGB. Спецификация PNG что в изображениях могут отображаться только профили оттенков серого цвет 0 или 4, и даже если изображение содержит только серый цвет пикселей, только изображения RGB могут отображаться на изображениях с типом цвета 2, 3, или 6, теперь применяется. Блоку sRGB разрешено появляться в изображениях с любым типом цвета.
Попробовав пару предложений на этой странице, я закончил использование решения pngcrush. Вы можете использовать bash script ниже для рекурсивного обнаружения и исправления плохих png-профилей. Просто передайте ему полный путь к каталогу, который вы хотите найти для png файлов.
Используя программу просмотра изображений IrfanView в Windows, я просто сохранил изображение PNG, и это исправило проблему.
Расширяя решение friederbluemle, загрузите pngcrush и затем используйте код, подобный этому, если вы запускаете его для нескольких файлов png
здесь все png файлы, относящиеся к проектам, находятся в 1 папке.
Вот смехотворный ответ грубой силы:
Я изменил gradlew script. Вот моя новая команда exec в конце файла в
Источник
предупреждение: libpng warning: iCCP: known incorrect sRGB profile
У меня при сборке «выпрыгнуло» предупреждение:
Почему эта предупреждение появляется что я должен сделать что бы решить эту проблему ??
Вопрос является переводом с английского , но честно сказать он мне понравился и я сам с такой проблемой столкнулся.
3 ответа 3
ibpng-1.6 более жестко проверяет профили ICC, чем предыдущие. Вы можете игнорировать предупреждение. Чтобы избавиться от него, удалите кусок iCCP из изображения PNG.
Некоторые приложения (в моём случае OpenGL) рассматривают предупреждения как ошибки; если вы используете такое приложение, вам нужно удалить iCCP кусок из изображения PNG. Это можно сделать с помощью любого из множества редакторов PNG (по правде говоря стандартный paint в windows у меня не смог). Пример редактор ImageMagick’s : convert in.png out.png.
Что бы удалить дефектный кусок (iCCP) из всех файлов PNG лежащих в директории можно воспользоваться командой mogrify *.png при условии, что ваш ImageMagick был собран с помощью libpng16(запустите такой командой convert -list format | grep PNG что бы быть уверренным в том что собираете в «верных» настройках).
Если вы хотите узнать, какие файлы нужно исправлять, а не слепо обрабатывать их все, вы можете запустить pngcrush -n -q *.png , где -n означает, что вы не переписываете файлы и — q означает подавление «технической» части вывода, за исключением предупреждений. К сожалению, в pngcrush еще нет опции для подавления всех «технических» сообщений, кроме предупреждений.
Бинарные релизы ImageMagick здесь
Для Android-проектов (Android Studio) перейдите в папку res.
Пример: C:\AndroidProjects\
Используйте pngcrush чтобы удалить неправильный профиль sRGB из файла png:
- ow будет перезаписывать входной файл
- rem allb удалит все вспомогательные куски, кроме tRNS и gAMA
- reduce сохраняет цвет и глубину
На выходе консоли вы должны увидеть Removed the sRGB chunk . , и, возможно, больше сообщений об удалении кусков iCCP. В конечном итоге вы получите меньший оптимизированный файл png. Когда команда перезапишет исходный файл, обязательно создайте резервную копию или контроль версий (гит_хаб, тартуисеХГ и т.д.).
Решение (мне это вариант нравится потому что он в Qt-е :3 )
Не корректный файл может быть исправлен :
- Открываем картинку(некорректный файл) с помощью QPixmap::load
- Сохраняем картинку(уже корректный файл) на диск с помощью QPixmap::save
Примечание это решение использует Qt билиотеку.
Пример:
Вот минимальный пример, который я написал на C++, чтобы продемонстрировать, как реализовать предлагаемое решение:
Полный исходный код «GUI приложение», основано на этом примере, доступно в GitHub.
Вы можете исправить это в фотошопе. У меня есть CC2015, но я уверен, что такая возможность присутствует во всех версиях.
- Откройте ваш .png файл
- File -> Save As и в открывшемся диалоговом окне снимите флажок «ICC Profile: sRGB IEC61966-2.1»
- снимите флажок «As a Copy»
- Смело сохраняйте свой «новый» оригинальный .png.
- Двигайтесь своей жизнью, зная, что вы удалили маленький кусочек зла из этого мира.
Я использовал функцию «mogrify * .png» ImageMagik. Однако у меня были изображения, зарытые в под папках, поэтому я использовал этот простой скрипт Python для применения ко всем изображениям во всех под папках и думал, что он может помочь другим людям:
Используя первый метод решения сего вопроса изменил вид запроса :
Я использовал find и xargs, потому что pngcrush не мог обрабатывать множество аргументов (которые были возвращены ** / *. Png ). Параметры -print0 и -0 необходимы для обработки имен файлов, содержащих пробелы.
Затем выполните поиск в вывод для этих строк: iCCP: Not recognizing known sRGB profile that has been edited.
И для каждого из них, запустить mogrify, чтобы исправить их.
Это предотвращает возможность индексации будто бы все png файлы изменены, когда только некоторые из них действительно были изменены. Кроме того, у этого метода есть преимущество, чтобы точно показать, какие файлы были неисправны.
Я тестировал это на Windows с консолью Cygwin и оболочкой zsh. И еще спасибо первому варианту(автор которого глен ) за точное пояснение как эту проблему можно решить.
вот более простой способ исправить эту проблему с Mac OS с помощью Homebrew:
или сделать с каждым файлом в текущем каталоге:
Homebrew создаст фиксированную копию для каждого файла png в текущем каталоге и поместит его в подкаталог tmp. После этого, если все в порядке, вам просто нужно переопределить исходные файлы.
Иной совет- использовать приложения Keynote и Preview для создания иконок. Я рисую их, используя Keynote, размером около 120×120 пикселей, над слайдом с белым фоном (опция для редактирования многоугольников — это замечательно!). Перед экспортом в Preview я рисую прямоугольник вокруг значка (без заливки или тени, только контур размером около 135×135) и скопируйте все в буфер обмена. После этого вам просто нужно открыть его с помощью инструмента «Просмотр» с помощью «Создать из буфера обмена», выбрать область размером 128×128 пикселей вокруг значка, скопировать, снова использовать «Создать из буфера обмена» и экспортировать его в PNG. Вам не нужно будет запускать инструмент pngfix.
Используя программу просмотра изображений IrfanView в Windows, я просто сохранил изображение PNG и исправил проблему.
Попробовав пару предложений на этой странице, я остановился на использовании pngcrush. Вы можете использовать скрипт bash ниже для рекурсивного обнаружения и исправления плохих профилей png. Просто передайте ему полный путь к каталогу, который вы хотите найти для png-файлов.
некоторые справочные данные по этому поводу:
Некоторые изменения в версии libpng 1.6+ приводят к тому, что он выдаёт предупреждение или даже неправильно работает с исходным профилем HP / MS sRGB, что приводит к следующему предупреждению libpng warning: iCCP: known incorrect sRGB profile . Старый профиль использует стандарт белой точки D50, когда в новом стандарте D65 является белой точкой . Этот профиль не редкость, используеться в Adobe Photoshop, хотя он по умолчанию не был встроен в изображения.
Обнаружение ошибок было улучшено в некоторых элементах.в частности, читатель iCCP элемента теперь делает довольно полную проверку базового формата.Некоторые неудачные профили, которые были ранее приняты, теперь отклонены, в частности, очень старый сломанный профиль Microsoft / HP sRGB. Требование спецификации PNG, что только изображения с оттенками серого могут отображаться на изображениях с типом цвета 0 или 4, и даже если изображение содержит только серые пиксели, теперь применяются только профили RGB в изображениях с типом цвета 2, 3 или 6. Элементу sRGB разрешено появляться на изображениях с любым типом цвета.
Источник
libpng warning: iCCP: known incorrect sRGB profile #101
Comments
RobbiNespu commented Dec 7, 2015
No GUI appearance when execute, only blank windows are appeared.
The text was updated successfully, but these errors were encountered:
brickgao commented Dec 16, 2015
R34skyline commented Oct 27, 2016
Any update on this? I have this same issue and can’t for the life of me figure it out.
dirtyd209 commented Feb 17, 2017
I am also having this issue. Seems every post i see just ends, abruptly with no answer. Strange. When launching from the icon I get blank 2 GUI boxes that pop up, but they don’t seem to load completely.
$ sudo fern-wifi-cracker
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
X Error: BadAccess (attempt to access private resource denied) 10
Extension: 130 (MIT-SHM)
Minor opcode: 1 (X_ShmAttach)
Resource id: 0x137
X Error: BadShmSeg (invalid shared segment parameter) 128
Extension: 130 (MIT-SHM)
Minor opcode: 5 (X_ShmCreatePixmap)
Resource id: 0xd3
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x1400016
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x1400016
X Error: BadAccess (attempt to access private resource denied) 10
Extension: 130 (MIT-SHM)
Minor opcode: 1 (X_ShmAttach)
Resource id: 0x137
X Error: BadShmSeg (invalid shared segment parameter) 128
Extension: 130 (MIT-SHM)
Minor opcode: 5 (X_ShmCreatePixmap)
Resource id: 0xd3
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x140001c
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x1400016
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x140001c
X Error: BadPixmap (invalid Pixmap parameter) 4
Major opcode: 54 (X_FreePixmap)
Resource id: 0x140001c
X Error: BadShmSeg (invalid shared segment parameter) 128
Extension: 130 (MIT-SHM)
Minor opcode: 2 (X_ShmDetach)
Resource id: 0x140001c
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x1400016
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x1400016
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x1400016
libpng warning: iCCP: known incorrect sRGB profile
kuna893 commented Mar 20, 2017
Hello,
I see that everyone have the same issue.. i having that also, nobody found something yet ?
# fern-wifi-cracker
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
X Error: BadAccess (attempt to access private resource denied) 10
Extension: 130 (MIT-SHM)
Minor opcode: 1 (X_ShmAttach)
Resource id: 0x13c
X Error: BadShmSeg (invalid shared segment parameter) 128
Extension: 130 (MIT-SHM)
Minor opcode: 5 (X_ShmCreatePixmap)
Resource id: 0x1200015
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x1200016
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x1200016
X Error: BadAccess (attempt to access private resource denied) 10
Extension: 130 (MIT-SHM)
Minor opcode: 1 (X_ShmAttach)
Resource id: 0x13c
X Error: BadShmSeg (invalid shared segment parameter) 128
Extension: 130 (MIT-SHM)
Minor opcode: 5 (X_ShmCreatePixmap)
Resource id: 0x120001b
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x120001c
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x1200016
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x120001c
X Error: BadPixmap (invalid Pixmap parameter) 4
Major opcode: 54 (X_FreePixmap)
Resource id: 0x120001c
X Error: BadShmSeg (invalid shared segment parameter) 128
Extension: 130 (MIT-SHM)
Minor opcode: 2 (X_ShmDetach)
Resource id: 0x120001b
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x1200016
arifai commented Apr 27, 2017
How to fix this?
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
X Error: BadAccess (attempt to access private resource denied) 10
Extension: 130 (MIT-SHM)
Minor opcode: 1 (X_ShmAttach)
Resource id: 0x144
X Error: BadShmSeg (invalid shared segment parameter) 128
Extension: 130 (MIT-SHM)
Minor opcode: 5 (X_ShmCreatePixmap)
Resource id: 0x497
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x1200016
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x1200016
X Error: BadAccess (attempt to access private resource denied) 10
Extension: 130 (MIT-SHM)
Minor opcode: 1 (X_ShmAttach)
Resource id: 0x144
X Error: BadShmSeg (invalid shared segment parameter) 128
Extension: 130 (MIT-SHM)
Minor opcode: 5 (X_ShmCreatePixmap)
Resource id: 0x497
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x120001c
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x1200016
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x120001c
X Error: BadPixmap (invalid Pixmap parameter) 4
Major opcode: 54 (X_FreePixmap)
Resource id: 0x120001c
X Error: BadShmSeg (invalid shared segment parameter) 128
Extension: 130 (MIT-SHM)
Minor opcode: 2 (X_ShmDetach)
Resource id: 0x120001c
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x1200016
X Error: BadPixmap (invalid Pixmap parameter) 4
Major opcode: 54 (X_FreePixmap)
Resource id: 0x1200016
X Error: BadShmSeg (invalid shared segment parameter) 128
Extension: 130 (MIT-SHM)
Minor opcode: 2 (X_ShmDetach)
Resource id: 0x1200016
savio-code commented May 2, 2017
export QT_X11_NO_MITSHM=1
sudo python execute.py
savio-code commented May 2, 2017
We will start a development of another version of fern WiFi cracker to eliminate this problem
hbsaul commented May 12, 2017 •
I found myself on the same boat. Would really appreciate if any one has a quick fix to this problem.
Источник