Maison > Questions et réponses > le corps du texte
J'ai essayé de charger une image PNG en utilisant SDL mais le programme ne s'exécute pas et j'obtiens cette erreur dans la console
Avertissement libpng : iCCP : profil sRGB incorrect connu
Pourquoi cet avertissement apparaît-il ? Que dois-je faire pour résoudre ce problème ?
P粉4810352322023-10-13 18:57:24
Supprimez le profil sRGB incorrect des fichiers png en utilisant pngcrush
:
pngcrush -ow -rem allb -reduce file.png
-ow
écrasera le fichier d'entrée-rem allb
Tous les blocs auxiliaires sauf tRNS et gAMA seront supprimés-reduce
Effectuez une réduction du type de couleur ou de la profondeur de bits sans perteDans la sortie de la console, vous devriez voir Removed the sRGB chunk
, et éventuellement plus de messages sur la suppression des blocs. Vous obtiendrez un fichier PNG plus petit et optimisé. Étant donné que cette commande écrasera le fichier d'origine, assurez-vous de créer une sauvegarde ou d'utiliser le contrôle de version.
P粉3005417982023-10-13 14:10:19
Certaines applications traitent les avertissements comme des erreurs ; si vous utilisez une telle application, vous devez supprimer le blocage. Vous pouvez le faire en utilisant n'importe quel type d'éditeur PNG, tel que ImageMagick.
À l'aide de l'invite Windows CMD, vous devez cd
(changer de répertoire) vers le dossier contenant les images sur lesquelles vous souhaitez vous concentrer avant de pouvoir utiliser les commandes répertoriées ci-dessous.
Libpng-1.6 a des contrôles plus stricts pour les profils ICC que les versions précédentes, vous pouvez ignorer l'avertissement ; Pour vous en débarrasser, supprimez le bloc iCCP de l'image PNG.
convert in.png out.png
Pour supprimer les blocs iCCP invalides de tous les fichiers PNG d'un dossier (répertoire), vous pouvez utiliser mogrify
depuis ImageMagick :
mogrify *.png
Cela nécessite que votre ImageMagick soit construit avec libpng16. Vous pouvez facilement le vérifier en exécutant :
convert -list format | grep PNG
Si vous souhaitez savoir quels fichiers doivent être réparés au lieu de tous les traiter aveuglément, vous pouvez exécuter
pngcrush -n -q *.png
où -n
表示不重写文件,-q
signifie supprimer la plupart des sorties, à l'exception des avertissements. Désolé, il n'y a pas encore d'option dans pngcrush pour tout supprimer sauf les avertissements.
Remarque : Vous devez avoir installé pngcrush.
ImageMagick se trouve ici
Pour les projets Android (Android Studio), accédez au dossier res
.
Par exemple :
C:\{your_project_folder}\app\src\main\res\drawable-hdpi\mogrify *.png