私が今していることは、すべてのピクセルをvar getPixels = require("get-pixels")
で取得してから、次のコードでピクセルの配列をループすることです:
var pixelation = 10;
var imageData = ctx.getImageData(0, 0, img.width, img.height);
var data = imageData.data;
for(var y = 0; y < sourceHeight; y += pixelation) {
for(var x = 0; x < sourceWidth; x += pixelation) {
var red = data[((sourceWidth * y) + x) * 4];
var green = data[((sourceWidth * y) + x) * 4 + 1];
var blue = data[((sourceWidth * y) + x) * 4 + 2];
//Assign
for(var n = 0; n < pixelation; n++) {
for(var m = 0; m < pixelation; m++) {
if(x + m < sourceWidth) {
data[((sourceWidth * (y + n)) + (x + m)) * 4] = red;
data[((sourceWidth * (y + n)) + (x + m)) * 4 + 1] = green;
data[((sourceWidth * (y + n)) + (x + m)) * 4 + 2] = blue;
}
}
}
}
}
私が探しているのは、ImageMagick -sale で行われたこれに似たものです
2番目に使用したコマンドは
convert -normalize -scale 10% -scale 1000% base.jpg base2.jpg
この方法の問題は、実際のピクセル サイズを指定する方法がわからないことです。
for
そのループで2番目の結果を取得することは可能ですか。または、 imagemagick -scale を使用することをお勧めしますが、数学に役立つ人がいる場合は、実際のピクセルサイズを大きくすることができます。