Rumah > Soal Jawab > teks badan
Saya cuba memuatkan imej PNG menggunakan SDL tetapi program tidak berjalan dan saya mendapat ralat ini dalam konsol
amaran libpng: iCCP: Profil sRGB yang diketahui tidak betul
Mengapa amaran ini muncul? Apakah yang perlu saya lakukan untuk menyelesaikan masalah ini?
P粉4810352322023-10-13 18:57:24
Alih keluar profil sRGB yang salah daripada fail png menggunakan pngcrush
:
pngcrush -ow -rem allb -reduce file.png
-ow
akan menimpa fail input-rem allb
Semua blok tambahan kecuali tRNS dan gAMA akan dialih keluar-reduce
Lakukan jenis warna lossless atau pengurangan kedalaman bitDalam output konsol anda akan melihat Removed the sRGB chunk
, dan mungkin lebih banyak mesej tentang penyingkiran blok. Anda akan mendapat fail PNG yang lebih kecil dan dioptimumkan. Memandangkan arahan ini akan menimpa fail asal, pastikan anda membuat sandaran atau menggunakan kawalan versi.
P粉3005417982023-10-13 14:10:19
Sesetengah aplikasi menganggap amaran sebagai ralat; jika anda menggunakan aplikasi sedemikian, anda mesti mengalih keluar sekatan. Anda boleh melakukan ini menggunakan sebarang jenis editor PNG, seperti ImageMagick.
Menggunakan Windows CMD prompt, anda perlu cd
(tukar direktori) ke folder yang mengandungi imej yang anda ingin fokuskan sebelum anda boleh menggunakan arahan yang disenaraikan di bawah.
Libpng-1.6 mempunyai pemeriksaan yang lebih ketat untuk profil ICC berbanding versi sebelumnya; anda boleh mengabaikan amaran itu. Untuk menyingkirkannya, alih keluar blok iCCP daripada imej PNG.
convert in.png out.png
Untuk mengalih keluar sekatan iCCP yang tidak sah daripada semua fail PNG dalam folder (direktori) anda boleh gunakan mogrify
daripada ImageMagick:
mogrify *.png
Ini memerlukan ImageMagick anda dibina dengan libpng16. Anda boleh menyemaknya dengan mudah dengan menjalankan:
convert -list format | grep PNG
Jika anda ingin mengetahui fail mana yang perlu dibaiki dan bukannya memproses kesemuanya secara membuta tuli, anda boleh menjalankan
pngcrush -n -q *.png
di mana -n
表示不重写文件,-q
bermaksud menyekat kebanyakan keluaran kecuali amaran. Maaf, tiada pilihan lagi dalam pngcrush untuk menyekat segala-galanya kecuali amaran.
Nota: Anda mesti telah memasang pngcrush.
ImageMagick terletak di sini
Untuk projek Android (Android Studio), navigasi ke folder res
.
Contohnya:
C:\{your_project_folder}\app\src\main\res\drawable-hdpi\mogrify *.png