我需要在javascript中处理1000x1000px*.bmp图像(~1MiB)中的pixeldata
目前我有点卡住,因为当我尝试将数据转储到控制台时页面冻结.
到目前为止重要的代码:
var img = new Image();
img.src = 'image.bmp';
context.drawImage(img, 0, 0);
console.log(context.getImageData(0, 0, canvas.height, canvas.width));
Run Code Online (Sandbox Code Playgroud)
我想这是一个性能问题,但是有更好的方法来访问像素数据吗?我真的不需要一次阅读所有内容,逐个读取像素也没关系.
编辑:
这里是更新的代码,它将使用图片的红色值填充二维数组(我正在处理黑白图片,这样就足够了)
var img = new Image();
img.src = 'image.bmp';
context.drawImage(img, 0, 0);
var imgData = context.getImageData(0, 0, canvas.height, canvas.width);
var pixel = new Array();
for(i=0;i<canvas.height;i++){
pixel[i] = new Array();
for(j=0;j<canvas.width;j++){
pixel[i][j] = imgData.data[i*canvas.width+j*4];
}
}
//now pixel[y][x] contains the red-value of the pixel at xy in img
Run Code Online (Sandbox Code Playgroud)
没有性能问题:)只有quirk是行/列是颠倒的
我在内部使用composer来管理内部软件依赖.我们的存储库服务器位于我们的专用网络上,我们没有使用任何其他存储库而不是我们的存储库.
每次跑步
composer.phar [install | update]
Run Code Online (Sandbox Code Playgroud)
它在检查我们自己的存储库后检查packagist.org存储库.除了不必要的,当packagist缓慢(甚至下降)或我们的互联网连接有一个糟糕的一天时,它需要更长的时间.
有没有办法告诉作曲家忽略检查packagist存储库?
bitmap ×1
canvas ×1
composer-php ×1
image ×1
javascript ×1
packagist ×1
pixel ×1
repository ×1