private MagickImage CreateMagickImage(XmlElement element)
{
Throw.IfNull(nameof(element), element);
MagickImage image = null;
MagickReadSettings settings = CreateReadSettings((XmlElement)element.SelectSingleNode("readSettings"));
string fileName = element.GetAttribute("fileName");
if (!string.IsNullOrEmpty(fileName))
{
if (settings != null)
image = new MagickImage(fileName, settings);
else
image = new MagickImage(fileName);
}
else
{
if (Read == null)
throw new InvalidOperationException("The Read event should be bound when the fileName attribute is not set.");
string id = element.GetAttribute("id");
ScriptReadEventArgs eventArgs = new ScriptReadEventArgs(id, settings);
Read(this, eventArgs);
if (eventArgs.Image == null)
throw new InvalidOperationException("The Image property should not be null after the Read event has been raised.");
image = eventArgs.Image;
}
Execute(element, image);
return image;
}