Free Palestine🇵🇸🇵🇸🇵🇸Cross platform super fast single header c++ library to get image size and format without loading/decoding. Support avif, bmp, cur, dds, gif, hdr (pic), heic (heif), icns, ico, j2k, jp2, jpeg (jpg), jpx, ktx, png, psd, qoi, tga, tiff (tif), webp ...
图像常用信息包括:格式、宽高、DPI及单位、色彩深度/色彩位数/通道位数(1、2、4、8、16),色彩通道(1、3、4,还有索引通道或者其它什么),色彩空间(黑白、索引、sRGB、cmyk等等),压缩方式及质量(仅部分格式)
元数据除了图像自带的Tag,还包括Exif,IPTC,XMP,JFIF / JFXX,ICC Profiles,Photoshop。 Exif信息是识别图像必须要读取的。Exit常用信息包括:宽、高、DPI及单位、色彩通道、通道位数、每像素通道数、色彩空间、原始日期、方向、GPS等等若干。
个人实践:图像格式、宽高像素、宽高DPI及单位、位数、通道数、色彩空间、压缩方式及质量、图像旋转方向、原始日期。这些11项是经常用到的,如果图像数据提供的话必须要能识别。
我现在用ImageMagick和metadata-extractor-dotnet来识别,前者优点是格式全,缺点是要读取全部图像数据,速度太慢。后者能识别各种格式的元数据,但是输出太全面了,外行也看不明白,没啥必要。
ImageInfo比较符合日常需求,识别的图像格式也足够。如果能识别图像格式的主要元数据就非常完美了。
当然,这是个慢功夫的活。