Благодаря Ив Даусту Я вновь обратился к некоторым своим старым попыткам решить эту проблему, продублировав каждый кусок 4 по месту назначения, и теперь я получил его на работу. Так что спасибо Ив :) Я не знаю, что я сделал не так раньше.
Это рабочий код, с которым я закончил. Я на 100% уверен, что это можно сделать по-другому и лучше, но на данный момент я доволен:)
Utils.prototype.scalePixelsInWidth = function(pixels) {
var w = 320;
var h = 200;
var scanlineWidth = w*4;
var scaledPixels = new Uint8Array(w*h*4);
var a = 0;
for(let row=0;row<h;row++) {
var col2 = 0;
for(let col=0;col<w;col++) {
var srcIndex = col2*4 + (row*(w/2)*4);
var destIndex = col*4 + (row * scanlineWidth);
scaledPixels[destIndex+0] = pixels[srcIndex+0];
scaledPixels[destIndex+1] = pixels[srcIndex+1];
scaledPixels[destIndex+2] = pixels[srcIndex+2];
scaledPixels[destIndex+3] = pixels[srcIndex+3];
a++;
if (a > 1) {
a = 0;
col2++;
}
}
}
return scaledPixels;
}