可以用Python读取JPEG图像中的路径吗?
如果你在Adobe Photoshop中选择“另存为”并选择jpg格式,那么这个文件里会存储一个路径(选择区域)。
那么,能不能在Python中读取这个路径呢?比如说,用PIL来创建一个合成图像?
补充说明
Imagemagick似乎可以帮忙,这里有个例子
2 个回答
0
你确定这个路径是存储在jpg文件里的吗?这听起来不太可能。路径一般是保存在Photoshop的原生格式里,而不是jpg格式。
你知道还有其他工具可以读取这个路径吗?你可以试着把这个文件保存为jpg格式,然后关闭Photoshop,再重新打开这个jpg文件,看看路径是否还在?我觉得可能不会有。
1
这段代码(由 /F
也就是被称为effbot的人写的,他是PIL的作者,也是一个非常出色的Python贡献者)展示了如何遍历 8BIM
资源块(不过它是寻找0x0404,也就是IPTC/NAA数据,所以你需要对它进行一些修改)。
根据Tom Ruark在这个帖子中的说法,路径的ID范围是2000到2999(其中2999是剪切路径的名称,所以和其他的不同),而数据是一系列26字节的“点记录”(因此资源的长度总是26的倍数)。
想了解更多细节,可以去看看Tom的帖子,里面有很多复杂的细节——这是一个麻烦且非常详细的二进制格式,需要大量的实验(以及对struct
、位操作等的熟练掌握)才能正确读取和解释(更麻烦的是,字段可以是大端或小端格式——如果我理解得没错,Windows是小端格式)。