Merge pull request #1971 from yurydelendik/issue-1970
Using fast pixels copy in putBinaryImageData
This commit is contained in:
commit
6ccf711966
@ -1279,14 +1279,17 @@ function checkPutBinaryImageDataCompatibility() {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
CanvasGraphics.prototype.putBinaryImageData =
|
CanvasGraphics.prototype.putBinaryImageData =
|
||||||
function CanvasGraphicsPutBinaryImageDataShim(ctx, imgData, w, h) {
|
function CanvasGraphicsPutBinaryImageDataShim(ctx, imgData, w, h) {
|
||||||
var tmpImgData = ctx.getImageData(0, 0, w, h);
|
var tmpImgData = 'createImageData' in ctx ? ctx.createImageData(w, h) :
|
||||||
|
ctx.getImageData(0, 0, w, h);
|
||||||
|
|
||||||
// Copy over the imageData pixel by pixel.
|
|
||||||
var tmpImgDataPixels = tmpImgData.data;
|
var tmpImgDataPixels = tmpImgData.data;
|
||||||
var len = tmpImgDataPixels.length;
|
var data = imgData.data;
|
||||||
|
if ('set' in tmpImgDataPixels)
|
||||||
while (len--) {
|
tmpImgDataPixels.set(data);
|
||||||
tmpImgDataPixels[len] = imgData.data[len];
|
else {
|
||||||
|
// Copy over the imageData pixel by pixel.
|
||||||
|
for (var i = 0, ii = tmpImgDataPixels.length; i < ii; i++)
|
||||||
|
tmpImgDataPixels[i] = data[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.putImageData(tmpImgData, 0, 0);
|
ctx.putImageData(tmpImgData, 0, 0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user