HTML5キャンバス要素の画像の色深度を変更する方法があるかどうかは、画像の各ピクセルの色が最も近いより少ない色のビット深度では等価である。ありがとうございました。Html5キャンバス要素の色の深度を変更
答えて
はい、実行できますが、それほど難しくありません。ここに私の答えを参照してください:How can I use a gradient map to tone a HTML5 canvas with an image in the canvas.
だけ着色のように、単にあなたがしなければならないすべては、各ピクセルの上に行くと低いことをRGBの値を変更している(1の8つのまたは16の代わりに、ステップの手順)
ので、あなたができる8つのステップのために:
redValue = redValue - (redValue % 32) // 155 would become 128, etc
あなたはうまくいくはずですが、エッジのケースをチェックする必要があります。
例:
+1より簡単な式。あまりに複雑すぎると思っていた。 – pimvdb
驚くばかり。これは非常に便利です。しかし、クイック質問。キャンバスは、デフォルトでは32ビットのビット深度です。この例では32/4 = 8ビットの深さに減らしていますか?それとも間違って考えていますか?再度、感謝します! – KeithComito
getImageData
で各色の各バイトを繰り返し処理できるので、いくつかの数学関数を適用することができます。 8-bit colors:http://jsfiddle.net/pimvdb/eGjak/191/を表します。
var imgdata = ctx.getImageData(0, 0, 400, 400); // get data
var data = imgdata.data; // bytes
// 8-bit: rrr ggg bb
for(var i = 0; i < data.length; i += 4) {
data[i] = nearest(data[i], 8); // set value to nearest of 8 possibilities
data[i + 1] = nearest(data[i + 1], 8);
data[i + 2] = nearest(data[i + 2], 4);
}
ctx.putImageData(imgdata, 0, 0); // put image data to canvas
function nearest(x, a) { // will round down to nearest of a possibilities
// in the range 0 <= x <= 255
return Math.floor(x/(255/a)) * (255/a);
}
いいえ。それが私が想像していたものです。私はちょっと、「色の濃さを変える」のような、あらかじめ定義された機能があると思っていました。 – KeithComito
@ user201926:申し訳ありませんが、何かが...黒/白に設定されていました。編集:これは私が願って良いはずです。 – pimvdb
私はこのために設定してそこに構築されたとは思いません。しかし、各ピクセルチャネルの値をより限定された値のセットに減らすことができるはずです。次のようなものがあります:
var ctx, width, height;
var factor = 8;
var pixels = ctx.getImageData(0, 0, width, height).data;
function reduce(val) {
return Math.round(val/factor)*factor;
}
for(var i = 0, l = pixels.length; i < l; i+=4) {
pixels[i] = reduce(pixels[i]);
pixels[i+1] = reduce(pixels[i+1]);
pixels[i+2] = reduce(pixels[i+2]);
}
ctx.putImageData(pixels, 0, 0)
- 1. HTML5 audio要素 - 変更のトラック色
- 2. html5キャンバス要素の印刷
- 3. HTML5キャンバス要素内のSVG
- 4. HTML5のキャンバスのストロークの色を変更する
- 5. HTML5キャンバスの変更履歴
- 6. HTML5キャンバス要素のスクロール検証
- 7. HTML5キャンバス要素をオブジェクトとして
- 8. HTML5キャンバス:度記号
- 9. ブートストラップアンカー要素の色を変更する
- 10. HTML5キャンバスで円の色を一時的に変更する方法
- 11. 私はIMG要素のようなキャンバス行為という何らかの方法でHTML5のキャンバスを伸ばし、サイズを変更したいIMG要素
- 12. シリアル化の深度を変更する
- 13. HTML5キャンバス - 色付きの問題
- 14. html5キャンバスのキャンバス
- 15. HTML5キャンバス要素を使用した四角形のグラデーション
- 16. スキュー変換HTML5のキャンバス
- 17. mouseoverでキャンバス要素のサイズを変更するには
- 18. UWPキャンバスのUI要素をScrollViewerでサイズ変更
- 19. 角度素材デザインのmdフォーカスチェックボックスの色を変更します
- 20. Javaレポートコンポーネントの色深度を保持
- 21. キャンバス要素の変更後にキャンバス要素を印刷するにはどうすればいいですか?
- 22. HTML5キャンバスのサイズと解像度
- 23. 色を変更する画像が、キャンバス
- 24. 角度素材 - mdラジオボタンの色を変更します
- 25. HTML5 Canvas - 色を変更する
- 26. キャンバスの要素は色を変えないと思われますか?
- 27. Android OpenGL ESのグレースケール色深度
- 28. OpeNni:深度座標への色座標
- 29. HTML5キャンバス(動画)要素を細かく分割する
- 30. HTML5キャンバス要素を説明する良いスクリーンキャストソース
単にユーザーの画面設定に依存していませんか? – feeela
私は実際に "低レズ"エフェクトを作成するためにイメージデータにしたいと思っています。 – KeithComito