问题描述
我需要一种编程方式来将剪切路径(另存为 SVG 文件)嵌入到另一个图像中,例如 JPG/TIF/PSD。使用Photoshop等工具,这可以轻松完成,路径将插入图像8BIM配置文件中,但似乎无法以编程方式完成。例如,ImageMagick 允许您使用以下命令获取矢量图像:
identify -format "%[8BIM:1999,2998:#1]" test.jpg > test.svg
但似乎无法进行反向操作并添加矢量图像。任何人都可以建议任何允许此操作的库吗?
解决方法
这比我现在想写的代码要多一些,但应该可以使用以下信息将 8BIM 放入 JPEG 中。
-
JPEG 的结构描述为 here 和 here。
-
您可以使用 PIL 或 OpenCV 将 JPEG 编码到内存缓冲区中,然后使用 this 之类的代码定位和修改/添加段(例如 8BIM)。或者,您可以在要修改的现有 JPEG 中仅 read()
。要插入段,只需将前几个段写入磁盘,然后写入新段,然后写入您在开始时读取的现有文件中的其余段。
-
您可以使用 this 答案构造要插入的 8BIM 段。
-
您可以使用 exiftool -v -v -v
查看 8BIM 在 Photoshop 创建的 JPEG 中出现的位置,然后将您的放在类似的位置。显然,您也可以同样使用 exiftool
来查看您自己的尝试在哪里/如何落地。