public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight) { if (image == null) { return; } XmlElement element = Dom.CreateElement("image"); element.SetAttribute("x", destRect.X.ToString()); element.SetAttribute("y", destRect.Y.ToString()); element.SetAttribute("width", destRect.Width.ToString()); element.SetAttribute("height", destRect.Height.ToString()); XmlAttribute href = Dom.CreateAttribute("xlink", "href", "http://www.w3.org/1999/xlink"); if (srcX != 0 || srcY != 0 || srcWidth != image.Width || srcHeight != image.Width) { using (var slice = PaintHelper.CutImage(image, srcX, srcY, srcWidth, srcHeight)) { href.Value = "data:image/png;base64," + ST.ImageBase64String(slice); } } else { href.Value = "data:image/png;base64," + ST.ImageBase64String(image); } element.Attributes.Append(href); AppendElement(element); }