我从DOM中获取一些SVG,将其转换为dataURI,将其作为图像绘制到canvas元素,然后读取图像数据的像素。这在chrome和FF中很好用,但是IE 10给了我一个安全错误。
这是JavaScript:
var SVG_DATA_IMG = 'data:image/svg+xml;base64, ';
var utf8_to_b64 = function(str) {
str = str.replace(/\ \;/g, ' ');
return window.btoa(unescape(encodeURIComponent(str)));
};
var svg = document.querySelector('#source-image');
var canvas = document.querySelector('#canv');
var ctx = canvas.getContext('2d');
var img = new Image();
img.crossOrigin = 'anonymous';
img.src = SVG_DATA_IMG + utf8_to_b64(svg.innerHTML);
document.querySelector('#img').appendChild(img);
img.addEventListener('load', function() {
canvas.width = img.offsetWidth;
canvas.height = img.offsetHeight;
console.log('loaded', ctx, canvas);
ctx.drawImage(img, 0, 0);
var centerPix = ctx.getImageData(canvas.width / 2, canvas.height / 2, 1, 1).data;
document.querySelector('#output').innerHTML = [
'center pixel color is:', centerPix[0], centerPix[1], centerPix[2], centerPix[3] ].join(', ')
});
这是html:
<div id="source-image">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="250" width="250" viewBox="-1 -1 250 250">
<g>
<path id="uniqueDomId-195" fill="#C0504D" fill-opacity="1" stroke="#8C3836" stroke-opacity="1" stroke-width="1" stroke-linecap="flat" stroke-linejoin="round" d="M50,40 L60,87 12,92 42,129 0,146 37,174 12,201 55,203 55,241 84,203 97,221 109,193 129,211 136,179 166,193 164,159 211,174 184,139 203,126 191,104 241,74 181,72 201,37 161,64 164,2 129,47 109,22 97,72Z" transform="translate(0.5, 0.5)" ></path>
</g>
</svg>
</div>
<canvas id="canv"></canvas>
<div id="img"></div>
<br />
<p id="output"></p>
安全错误信息量不大:
正如您所看到的,我正在尝试为图像设置crossOrigin
值。我觉得必须有一个简单的解决方案。
更新
花了一段时间使用new Blob
获取同一件事的blob版本并仍然得到相同的错误。
答案 0 :(得分:1)
尝试:
Dim thisHeader ' As HeaderFooter
For Each thisHeader In thisSection.Headers
thisHeader.Range.Paragraphs.TabStops.Add objWord.InchesToPoints(2.5)
Next
Capital&#34; A&#34;因为与&#34; a&#34;:Paragraphs