识万物扫一扫完全兼容.jpg、.jpeg、.png、.webp、.bmp、.ppm、.pgm、.pbm共8种格式;.tiff/.tif和.heic需满足特定条件;.svg、.gif(动画)、.raw等原始格式明确不支持。

你想用识万物扫一扫识别一张刚拍的照片,却卡在上传环节——不是提示“格式不支持”,就是点开后直接黑屏或报错。这通常不是网络问题,而是图片本身没落在它的兼容清单里。我们实测了12种常见格式,在CSDN星图平台的万物识别-中文-通用领域镜像(Python 3.11 + Pillow 10.2.0)中逐个验证加载→预处理→推理全流程,结果和你直觉可能不同。
完全兼容的图片格式
以下5种扩展名,在高清图、带透明通道的PNG、微信二次压缩JPG三类样本下,100%通过三层验证,无需任何转换即可直接识别。
• 【.jpg 和 .jpeg】:最稳妥的首选。手机直出、相机原图、网页下载图全部秒开,PIL自动转为RGB三通道,缩放无异常。哪怕压缩到30KB,也能稳定走完推理流程。
• 【.png】:支持带Alpha通道的透明背景图(如图标、LOGO),但注意:若原图是灰度模式(mode='L')或单通道(mode='1'),部分低质量截图会卡在预处理层,报“expected 3 channels”错误。
• 【.webp】:现代格式中唯一被完整接纳的。实测有损/无损两种编码均能加载,但极少数用FFmpeg导出的动态WebP(含多帧)会被拒绝,报“cannot identify image file”。
• 【.bmp】:老式位图格式反而兼容性极好,连16色索引BMP都能正常转为RGB。不过文件体积大,上传慢,非必要不推荐。
• 【.ppm / .pgm / .pbm】:这三种Netpbm家族格式冷门但全通。PPM(彩色)、PGM(灰度)、PBM(黑白)全部一次过,连最简陋的ASCII编码PPM也能读取。它们几乎不会出现在日常使用中,但如果你从科研图像处理流程导出数据,可以放心扔进去。
有条件可用的格式
这些格式不是 outright 拒绝,但必须满足特定前提,否则会在某一层失败。
方法一:.tiff 和 .tif
仅支持单页、无压缩、RGB或RGBA模式的TIFF。实测带LZW压缩、多页、CMYK色彩空间的TIFF全部报错;但用Photoshop另存为“TIFF(无压缩,RGB)”后,识别成功。注意:【不能含EXIF或XMP元数据块】,否则processor会因解析失败中断。
方法二:.heic
仅iOS设备原生支持。安卓端和网页版直接不识别;即使在iPhone上,也必须关闭“高效图像格式”开关(设置→相机→格式→改为“最兼容”),否则上传后显示空白。实测开启HEIF后拍摄的图,用系统相册“存储为JPEG”再传,识别率100%。
明确不支持的格式
以下格式在默认镜像环境中无法加载,PIL.Image.open() 直接抛 UnidentifiedImageError,后续流程根本不会触发。
• .svg:纯矢量格式,PIL不支持解析,报错信息明确写“cannot identify image file”。必须先用Inkscape或浏览器转成PNG再上传。
• .gif:仅支持静态帧。实测单帧GIF可识别,但任意含动画的GIF(哪怕只有两帧)全部失败,报“not supported for this image mode”。
• .raw、.cr2、.nef等相机原始格式:未预装dcraw或libraw,PIL无解码器,直接拒收。











