我正在尝试将位图创建(编码)到文件中 - 格式应为 JpegXR 并且我希望元数据与它相关联。WIC 和它在 C# (.Net) 中的对应物做得很好,但我未能创建任何类型的元数据对象。
这就是我想要做的(wb 是我的形象;没有元数据它可以工作):
WmpBitmapEncoder enc = new WmpBitmapEncoder
{
UseCodecOptions = true,
FrequencyOrder = true, // (progressive)
QualityLevel = 1, // 1=lossless 255=worst
HorizontalTileSlices = 0,
VerticalTileSlices = 0,
Lossless = true,
};
var bitmapFrame = BitmapFrame.Create(wb);
var meta0 = bitmapFrame.CreateInPlaceBitmapMetadataWriter();
var meta1 = bitmapFrame.Metadata;
enc.Frames.Add(bitmapFrame);
BitmapMetadata meta2 = new BitmapMetadata("wdp");
enc.Metadata = meta2;
using (var fileStream = new FileStream(target, FileMode.Create))
{
enc.Save(fileStream);
}
结果是:meta0
== null
,meta1
也产生null
无论我提供什么字符串,调用new BitmapMetadata("")
都会引发异常:ArgumentException
“找不到属性”。
那么应该如何为从头开始创建的图像提供/创建图像元数据呢?