gpt4 book ai didi

c# - 如何向图像添加 JPEG 注释 (COM)?

转载 作者:太空狗 更新时间:2023-10-30 01:19:55 24 4
gpt4 key购买 nike

我正在尝试使用 WPF 向图像文件添加 JPEG 注释。尝试以下代码会抛出一个 ArgumentOutOfRangeException。设置其他属性没有问题。

    using (Stream read = File.OpenRead(@"my.jpeg"))
{
JpegBitmapDecoder decoder = new JpegBitmapDecoder(read, BitmapCreateOptions.None, BitmapCacheOption.None);

var meta = decoder.Frames[0].Metadata.Clone() as BitmapMetadata;
meta.SetQuery("/app1/ifd/exif:{uint=40092}", "xxx"); // works
meta.SetQuery("/com/TextEntry", "xxx"); // does not work
}

明确一点:我必须设置 MSDN http://msdn.microsoft.com/en-us/library/windows/desktop/ee719904%28v=vs.85%29.aspx#_jpeg_metadata 中列出的/com/TextEntry 字段

数据由另一个仅支持此标记的应用程序读取,因此不能选择使用其他“注释”字段。

有什么想法吗?

最佳答案

/com/TextEntry 的数据类型有点棘手,它需要一个 LPSTR。这是一个原始的 8 位编码字符串指针。您可以通过为参数传递一个 char[] 来做到这一点。修复:

   meta.SetQuery("/com/TextEntry", "xxx".ToCharArray());

请注意,如果您使用非 ASCII 字符,文本编码可能会出现问题,您将在机器的默认代码页 (Encoding.Default) 中获得编码的文本。

关于c# - 如何向图像添加 JPEG 注释 (COM)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21189242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com