设备信息:15 pro, ios 17.4.1
背景:最近在 Immich app 中下载 nas 中图片的时候,发现只要是 jpg 格式的图片在下载完后,server 端会出现两个看上去一样的图,比对后发现是图片的二进制数据大小不一致,导致 hash 不一样,从而被服务端判断为两张图片了。试了下 PNG 、HEIC 格式都没有这个问题。
排查:上传、下载了多组 JPG 图后发现,从手机下载的图总是会比原本上传的图要大,并且这个问题不止局限在 Immich ,例如我从浏览器打开下面这个 693 个字节大小的图片
做以下三种操作对应的表现:
初步怀疑是「相册」这个 app 在系统层的图片写入有一些 jpg 图片的重编码逻辑,然后 immich 存图的逻辑与上面第 3 点一致,导致的这个问题
求助:
因为问题起于 Immich ,本人非常喜欢的一个图片管理工具,也提了issue,奈何英语水平有限沟通效率比较低,希望在这能找到一些线索,进而能够让官方解决掉这个 bug
1
intinatsu 228 天前 2
>> 1. 直接保存到「文件」,保存下来的图就是 693 个 byte
>> 3. 从「文件」中点击分享按钮,选择存储图像,「相册」中的图有 17kb 以 OP 贴出来这张图为例,在 iOS 上可以复现,就是 17kb 。 可以通过 exiftool 查看 jpg 文件数据,有一项: Thumbnail Image: (Binary data 16004 bytes, use -b option to extract) 也就是说这张 17kb 的图像中包含了 16kb 的缩略图,剩下多出来的数据应该包括新添加的一些 EXIF 信息。 |
2
revlis7 228 天前 1
群晖的 Moments 也有类似的问题,用分享菜单中的保存图片,RAW 格式的文件最后会被转为 JPG ,只有直接选择 Moments 里的下载才能保存原始的 RAW 文件,感觉这是 iOS 分享功能默认的行为。
|
4
cwcauc 227 天前 via iPhone
我保存到相册怎么是 9KB
|