あなたはSVGフィルタを使用してこれを行うことができますが、あなたは、Internet Explorerの64個の値の最大値に制限されています。ストレート白/黒ポスタリゼーション用フィルタは、このです:
<filter id="greyscale-posterize" color-interpolation-filters="sRGB">
<feColorMatrix type="saturate" values="0"/>
<feComponentTransfer>
<feFuncR type="discrete" tableValues="0 1"/>
<feFuncG type="discrete" tableValues="0 1"/>
<feFuncB type="discrete" tableValues="0 1"/>
</feComponentTransfer>
</filter>
10の値のグレースケールのためのフィルタは、次のようになります
<filter id="greyscale-posterize" color-interpolation-filters="sRGB">
<feColorMatrix type="saturate" values="0"/>
<feComponentTransfer>
<feFuncR type="discrete" tableValues="0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1"/>
<feFuncG type="discrete" tableValues="0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1"/>
<feFuncB type="discrete" tableValues="0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1"/>
</feComponentTransfer>
</filter>
使用JavaScriptを入力されるように範囲の適切な数で書くことかわった。
最初にイメージを取得してキャンバスに描画し、ピクセルのRGB値に1つずつアクセスすることができます。次に、Y(輝度)は、式「Y = 0.299 * R + 0.587 * G + 0.114 * B」で計算され、計算されたYがピクセルごとにR、G、Bの場所に挿入されます。 – Redu
将来的には、以下の解説のように、この技術を達成しようとしていることを「量子化」といいます。 –