Я SDE / T, и мне нужно написать метод, который сравнивает два изображения, чтобы гарантировать, что изображение во время теста соответствует ожидаемым результатам.Я хотел бы сделать модель изображения XML и просто сравнить этот XML с ожидаемой моделью XML (используя отказоустойчивость, чтобы учесть небольшие различия).
Я нашел эту статью в StackOverflow об отправке данных изображения в XML: Ссылка
Я нашел эту статью в Википедии о формате растрового изображения: Формат растрового изображения
Я нашел статью в CodePlex, в которой можно превратить растровый объект в 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
- сжатие
Возможно, я могу каким-то образом сделать хеш-значение для самих данных изображения, но тогда мне нужнопонять, как ввести отказоустойчивость в такой расчет.Любые предложения приветствуются.