Cestarian Asked: 2024-03-31 14:20:33 +0800 CST2024-03-31 14:20:33 +0800 CST 2024-03-31 14:20:33 +0800 CST 有没有办法找到文件夹中所有具有透明像素的PNG文件 772 我有几千个 PNG,它们都可能支持 Alpha 通道,但只有其中一些实际使用它(只有其中一些实际上具有透明像素)。 有什么办法可以让我快速找到所有此类文件吗? files 2 个回答 Voted Jasen 2024-04-01T08:10:06+08:002024-04-01T08:10:06+08:00 使用netpbm: pngtopnm -alpha filename.png | pgmhist 如果有一行以值“0”开头,则图像包含完全透明的像素 如果存在值“255”以外的数字行,则图像包含部分透明像素。 所以把它放在一个for循环中。 for file in *.[pP][Nn][Gg] do pngtopnm -alpha -- "$file" | pgmhist | grep -q '^ *0 ' && echo "$file" contains transparent pixels. done Best Answer Cestarian 2024-04-01T11:42:38+08:002024-04-01T11:42:38+08:00 找到了一种使用 imagemagick 的方法。 identify -format '%[opaque]' filename.png 所以其中“$@”是图像的路径: #!/bin/bash case $(identify -format '%[opaque]' "$@") in [Ff]alse) echo "Image has transparent pixels";; [Tt]rue) echo "Image has no transparent pixels";; *) echo "Error" esac
使用netpbm:
如果有一行以值“0”开头,则图像包含完全透明的像素
如果存在值“255”以外的数字行,则图像包含部分透明像素。
所以把它放在一个for循环中。
找到了一种使用 imagemagick 的方法。
所以其中“$@”是图像的路径: