我是 SDE/T,我需要编写一个比较两个图像的方法,以确保测试期间的图像符合预期结果。我想制作图像的 XML 模型,然后将该 XML 与预期的 XML 模型进行比较(使用容错以允许细微差异)。
我发现这篇关于将图像数据发送到 XML 的 StackOverflow 文章:链接
我发现这篇关于位图格式的维基百科文章:位图格式
我在 CodePlex 中发现了一篇文章,它允许您将 Bitmap 对象转换为 XML。但我想编码某些图像元数据。
这是 CodePlex 文章中用于将数据导出到 XML 的方法:
public void ExportToXML(Dictionary<string, Bitmap> BmpList, string Filename)
{
XmlNode node = null;
XmlNode subnode = null;
XmlAttribute attr = null;
XmlDocument doc = new XmlDocument();
if (System.IO.File.Exists(Filename))
doc.Load(Filename);
// Select or create a Graphics root node
XmlNode root = doc.SelectSingleNode("/Graphics");
if (root == null)
{
root = doc.CreateNode(XmlNodeType.Element, "Graphics", null);
doc.AppendChild(root);
}
// If the Symbols section exists, get rid of it
node = root.SelectSingleNode("descendant::Symbols");
if (node != null)
root.RemoveChild(node);
// Create a new Symbols section
node = doc.CreateNode(XmlNodeType.Element, "Symbols", null);
root.AppendChild(node);
// Save the pattern info
foreach (string bmpName in BmpList.Keys)
{
Bitmap bmp = BmpList[bmpName];
// what about RGB and alpha channel info?
subnode = doc.CreateNode(XmlNodeType.Element, "symbol", null);
attr = doc.CreateAttribute("name");
attr.Value = bmpName;
subnode.Attributes.Append(attr);
byte[] bb = ByteArrayFromBitmap(ref bmp);
string ss = Convert.ToBase64String(bb);
attr = doc.CreateAttribute("bitmap");
attr.Value = ss;
subnode.Attributes.Append(attr);
node.AppendChild(subnode);
}
doc.Save(Filename);
}
有人可以建议一种获取有关位图图像信息的方法吗?我认为这可能是在测试中处理图像的一种更强大的方法。
可能要编码的元数据:
图片名称
图片尺寸
图片日期
阿尔法通道信息
像素格式
ICC 颜色配置文件
压缩
也许我可以以某种方式为图像数据本身创建一个哈希值,但是我需要了解如何将容错引入到这样的计算中。非常感谢任何建议。
慕桂英546537
相关分类