我知道PNG不支持EXIF MetaData(根据W3C),但是我有一个工具可以在zTXt块的PNG中注入EXIF MetaData,我已经到处搜索但是没有找到如何编写EXIF数据在PNG中使用c#使用sqtquery或任何其他方式。
答案 0 :(得分:1)
只要您可以将数据写为文本,这是一个简单的解决方案:
public void WriteTextInPngFile(string filename, string description, string otherText)
{
Stream pngStream = new System.IO.FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
PngBitmapDecoder pngDecoder = new PngBitmapDecoder(pngStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapFrame pngFrame = pngDecoder.Frames[0];
InPlaceBitmapMetadataWriter pngInplace = pngFrame.CreateInPlaceBitmapMetadataWriter();
if (pngInplace.TrySave() == true)
{
pngInplace.SetQuery("/Text/Description", description);
pngInplace.SetQuery("/Text/YourField", otherText);
}
pngStream.Close();
}
您必须设置以下参考:
此示例基于BitmapFrame类
的帮助