public static PDFImageData LoadImageFromUriData(string src, IPDFDocument document, IPDFComponent owner) { if (null == document) { throw new ArgumentNullException("document"); } if (null == owner) { throw new ArgumentNullException("owner"); } var dataUri = ParseDataURI(src); if (dataUri.encoding != "base64") { throw new ArgumentException("src", $"unsupported encoding {dataUri.encoding}; expected base64"); } if (dataUri.mediaType != "image/png") { throw new ArgumentException("src", $"unsupported encoding {dataUri.mediaType}; expected image/png"); } var binary = Convert.FromBase64String(dataUri.data); using (var ms = new System.IO.MemoryStream(binary)) { return(PDFImageData.LoadImageFromStream(document.GetIncrementID(owner.Type) + "data_png", ms, owner)); } }
/// <summary> /// Loads an image from a base 64 data image /// </summary> /// <param name="document"></param> /// <param name="owner"></param> /// <param name="path"></param> /// <returns></returns> public Scryber.Drawing.PDFImageData LoadImageData(IPDFDocument document, IPDFComponent owner, string path) { path = GetBase64FromPath(path); var binary = Convert.FromBase64String(path); using (var ms = new System.IO.MemoryStream(binary)) { return(PDFImageData.LoadImageFromStream(document.GetIncrementID(owner.Type) + "data_png", ms, owner)); } }