嗨,如果我用剪切路径保存了 jpg,我如何从 C# 获取该信息?
这段代码可以给我一些元数据,但我认为剪切路径信息是(photoshop?)专有扩展?我怎样才能读到它?
BitmapDecoder decoder = new JpegBitmapDecoder(new FileStream(filespec, FileMode.Open), BitmapCreateOptions.None, BitmapCacheOption.None);
BitmapMetadata meta = (BitmapMetadata)decoder.Frames[0].Metadata;
return meta.Keywords.ToArray<string>();
不幸的是,使用 C# 中的标准 .NET 库直接从“用clipping path保存”的 JPG 中提取clipping path信息是不可能的。 JPG 本身不支持剪切路径。
以下是两种可能的方法:
使用外部工具:
ImageMagick:这个流行的图像处理库可以识别各种格式的剪切路径,包括带有嵌入路径的JPG。您可以使用 -verbose 标志调用 ImageMagick 中的 recognize.exe 工具来获取有关图像的详细信息,包括剪切路径数据(如果存在)。然后,您可以解析 C# 代码中的输出以提取路径信息。
替代图像格式: 如果您可以控制图像的保存方式,请考虑使用 PSD(Photoshop 文档)或带有 Alpha 通道的 PNG 等格式。这些格式明确支持剪切路径,并且可以使用 System.Drawing.Common 或第三方库等库来读取和访问 C# 中的路径数据。
以下是一些可能有用的资源:
Stack Overflow 关于该主题的讨论:[Stack Overflow - 从 Stack Overflow stackoverflow.com 上的 jpg 中提取剪切路径信息] ImageMagick 文档:[ImageMagick 上的 ImageMagick 图像识别 imagemagick.org]
请记住,虽然 C# 中没有内置直接访问 JPG 的剪切路径,但使用外部工具或替代图像格式可以为您的特定需求提供解决方法。