在Linux上找出PNG透明背景顏色

在Linux上找出PNG透明背景顏色

PNG 檔案似乎包含透明像素的背景顏色資訊。當使用該圖像作為具有錯誤設定的紋理時,有時這種情況會變得很明顯。

如何在 Linux(最好是命令列)中找出 PNG 檔案中透明像素的顏色是什麼?

答案1

背景顏色透過 PNG“bKGD”塊傳達。

在命令列中,您可以使用“pngcheck -v”。從以下位置下載並安裝 pngcheck

http://www.libpng.org/pub/png/apps/pngcheck.html

然後輸入

pngcheck -v file.png

如果 bKGD 區塊存在於 PNG 檔案中,pngcheck 的輸出將包含以下內容:

區塊 bKGD 位於偏移 0x000a0,長度 6 紅色 = 0x00e0,綠色 = 0x00e0,藍色 = 0x0080

您可能已經擁有 ImageMagick(版本 6.6.9 或更高版本),因此您還可以透過鍵入以下內容來獲取 bKGD 區塊資訊以及許多其他內容

identify -verbose file.png

並尋找

背景顏色:srgba(224,224,128,1)

png:bKGD:找到區塊(請參閱上面的背景顏色)

如果只出現“背景顏色”,但未出現“png:bKGD:...”,則標識正在報告 ImageMagick 的預設背景顏色,且 PNG 檔案中不存在 bKGD 區塊。

答案2

PNG 規範(關聯)描述了儲存透明度資訊的 tRNS 區塊。

軟體庫庫檔案可以讀寫PNG文件,包括透明度資訊。具體來說,請尋找以下函數:

png_get_tRNS(png_ptr, info_ptr, &trans_alpha, &num_trans, &trans_color)

相關內容