Javascript 弗洛伊德·斯坦伯格:索引颜色?
我正在努力研究如何将2色Floyd Steinberg algol转换成X色算法。(索引?) 我认为计算必须从这一行:Javascript 弗洛伊德·斯坦伯格:索引颜色?,javascript,Javascript,我正在努力研究如何将2色Floyd Steinberg algol转换成X色算法。(索引?) 我认为计算必须从这一行: var rc = (cc<127?0:255); 是这样吗?我是否需要以某种方式调整误差扩散 function floydSteinberg8(sb, w, h){ for(var i=0; i<h-1; i++) for(var j=0; j<w; j++){ var ci = i*w+j; var cc = sb[ci
var rc = (cc<127?0:255);
是这样吗?我是否需要以某种方式调整误差扩散
function floydSteinberg8(sb, w, h){
for(var i=0; i<h-1; i++)
for(var j=0; j<w; j++){
var ci = i*w+j;
var cc = sb[ci];
var rc = (cc<127?0:255); // This one changed to
var rc = lockedGreyscale[cc];// this one
var err = cc-rc;
sb[ci] = rc;
sb[ci+1] += (err*7)>>4;
sb[ci+w-1] += (err*3)>>4;
sb[ci+w] += (err*5)>>4;
sb[ci+w+1] += (err*1)>>4;
}
}
函数floydSteinberg8(sb,w,h){
对于(var i=0;i>4;
sb[ci+w]+=(err*5)>>4;
sb[ci+w+1]+=(err*1)>>4;
}
}
编辑:
我一直在调整我的代码-这个算法行吗?
我认为indexedGreyscale中像素亮度的权重可能被关闭了?
就是这样-只是亮度的LUT!?
(程序需要按下播放按钮、抖动并关闭颜色)
function floydSteinberg8(sb, w, h){
for(var i=0; i<h-1; i++)
for(var j=0; j<w; j++){
var ci = i*w+j;
var cc = sb[ci];
var rc = (cc<127?0:255); // This one changed to
var rc = lockedGreyscale[cc];// this one
var err = cc-rc;
sb[ci] = rc;
sb[ci+1] += (err*7)>>4;
sb[ci+w-1] += (err*3)>>4;
sb[ci+w] += (err*5)>>4;
sb[ci+w+1] += (err*1)>>4;
}
}