private string GetWidthAndHeight(string p_identifier, string p_returnType) { try { Extractor kdu = new Extractor(); string xmlMetadata = kdu.GetMetadata(p_identifier.EndsWith(".jp2") ? p_identifier : p_identifier + ".jp2"); XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlMetadata); Metadata data = new Metadata(); data.profile = "http://library.stanford.edu/iiif/image-api/compliance.html#level2"; data.identifier = p_identifier; data.width = int.Parse(doc.GetElementsByTagName("Width")[0].InnerText); data.height = int.Parse(doc.GetElementsByTagName("Height")[0].InnerText); scale_factors scaleFactors = new scale_factors(); for (int i = 0; i < int.Parse(doc.GetElementsByTagName("Jp2levels")[0].InnerText); i++) { scaleFactors.Add(Convert.ToInt32(Math.Pow(2, i))); } data.scale_factors = scaleFactors; formats formats = new formats(); formats.Add("jpg"); formats.Add("png"); formats.Add("gif"); data.formats = formats; qualities qualities = new qualities(); qualities.Add("native"); qualities.Add("grey"); qualities.Add("bitonal"); data.qualities = qualities; data.tile_width = int.Parse(doc.GetElementsByTagName("TileWidth")[0].InnerText); data.tile_height = int.Parse(doc.GetElementsByTagName("TileHeight")[0].InnerText); if (p_returnType.Equals("json")) { JavaScriptSerializer serializer = new JavaScriptSerializer(); return(serializer.Serialize(data)); } else { return(getSerializedXML(data)); } } catch (Exception e) { err = new error(); try { err.parameter = "identifier"; XmlDocument doc = new XmlDocument(); doc.LoadXml(e.Message); err.text = doc.GetElementsByTagName("Message")[0].InnerText; err.statusCode = System.Net.HttpStatusCode.NotFound; } catch { err.statusCode = System.Net.HttpStatusCode.BadRequest; err.parameter = "unknown"; err.text = e.Message; } return(getSerializedXML(err)); } }
private string GetWidthAndHeight(string p_identifier, string p_returnType) { try { Extractor kdu = new Extractor(); string xmlMetadata = kdu.GetMetadata(p_identifier.EndsWith(".jp2") ? p_identifier : p_identifier + ".jp2"); XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlMetadata); Metadata data = new Metadata(); data.profile = "http://library.stanford.edu/iiif/image-api/compliance.html#level2"; data.identifier = p_identifier; data.width = int.Parse(doc.GetElementsByTagName("Width")[0].InnerText); data.height = int.Parse(doc.GetElementsByTagName("Height")[0].InnerText); scale_factors scaleFactors = new scale_factors(); for (int i = 0; i < int.Parse(doc.GetElementsByTagName("Jp2levels")[0].InnerText); i++) { scaleFactors.Add(Convert.ToInt32(Math.Pow(2, i))); } data.scale_factors = scaleFactors; formats formats = new formats(); formats.Add("jpg"); formats.Add("png"); formats.Add("gif"); data.formats = formats; qualities qualities = new qualities(); qualities.Add("native"); qualities.Add("grey"); qualities.Add("bitonal"); data.qualities = qualities; data.tile_width = int.Parse(doc.GetElementsByTagName("TileWidth")[0].InnerText); data.tile_height = int.Parse(doc.GetElementsByTagName("TileHeight")[0].InnerText); if (p_returnType.Equals("json")) { JavaScriptSerializer serializer = new JavaScriptSerializer(); return serializer.Serialize(data); } else { return getSerializedXML(data); } } catch (Exception e) { err = new error(); try { err.parameter = "identifier"; XmlDocument doc = new XmlDocument(); doc.LoadXml(e.Message); err.text = doc.GetElementsByTagName("Message")[0].InnerText; err.statusCode = System.Net.HttpStatusCode.NotFound; } catch { err.statusCode = System.Net.HttpStatusCode.BadRequest; err.parameter = "unknown"; err.text = e.Message; } return getSerializedXML(err); } }