如何修复巨大的图像在画布上变黑

时间:2019-04-04 11:20:34

标签: javascript image canvas upload large-file-upload

我正在使用画布上载脚本为客户端上载大图像。除了一个问题,我一切都按需要进行。巨大的图像不起作用。目标是能够上传大约20000x20000的图片。

大约15000x15000的图像可以正常工作,但较大的图像则不能工作。 结果甚至不一致。大多数情况下,它们只是变黑,但有时浏览器只是停止并给出停止工作的页面。

var oc = document.createElement('canvas'), octx = oc.getContext('2d');
oc.width = img.width;
oc.height = img.height;

var iStep = .9;

while (oc.width * iStep > width) {
        oc.width *= iStep;
        oc.height *= iStep;
    octx.drawImage(img, 0, 0, img.width, img.height, 0, 0, oc.width, oc.height);
    console.log('Resized to: height: ' + oc.height + '; width: '+oc.width);

}

oc.width = width;
oc.height = oc.width * img.height / img.width;

octx.drawImage(img, 0, 0, oc.width, oc.height);

sDataString = oc.toDataURL("image/jpeg", .8);

// Followed by an ajax upload

上传的图像大多是约2万画质的艺术品。

你们俩对我如何解决黑色图像有任何想法吗?

0 个答案:

没有答案