74632// SVGTOBITMAP  

zim.svgToBitmap = function(svg, callback, width, height, params) {

	if (!zot(svg.draggable)) {
		// CreateJS seems to wrap up an SVG with loadAssets as an SVG object
		var parser = new DOMParser();
		svg = !svg.innerHTML?svg:parser.parseFromString(svg.innerHTML,"text/xml");
		var list = svg.getElementsByTagName("svg");
		var tag = list?svg.getElementsByTagName("svg")[0]:null;
		svg = tag;
	}

        if (!XMLSerializer) {if (zon) {zogy("ZIM svgToBitmap() - sorry, not supported in Browser"); return;}}
	var svgString = (typeof svg == "string") ? svg : new XMLSerializer().serializeToString(svg);
	if (svgString) {
		// seem to need width and height parameters in svg tag
		var first = svgString.split(">")[0];
		if (first.length>1) {
			var wid = first.split(/width/i);
			if (wid.length==1) { // no width and assume no height
				var w=100;
				var h=100;
				var box = first.split(/viewBox/i);
				if (box.length>1) {
					var dim = box[1].split("\"")[1];
					if (dim) {
						var d = dim.split(" ");
						if (d.length>1) {
							w = d[d.length-2];
							h = d[d.length-1];
						}
					}
				}
				// remember it is xml - need quotes
				svgString = svgString.replace(/svg /i, "svg  width=\""+w+"\" height=\""+h+"\" ");
			}
		}
		if (!svgString.match(/xmlns/i)) svgString = svgString.replace(/svg /i, "svg  xmlns='https://www.w3.org/2000/svg' ");
	}
	var DOMURL = self.URL || self.webkitURL || self;
        var img = new Image();
        img.onload = function() {
            var bitmap = new zim.Bitmap(img, width, height);
            callback(bitmap, params);
		DOMURL.revokeObjectURL(obu);
        };
	var obu;
	if (document && document.Blob) obu = DOMURL.createObjectURL(new document.Blob([svgString], {type: "image/svg+xml"}));
	else obu = DOMURL.createObjectURL(new Blob([svgString], {type: "image/svg+xml"}));
        img.src = obu;
    };