問題タブ [dithering]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
587 参照

image - ディザリングの量を受け入れるc#画像ディザリングルーチン?

aforge の floyed-steinberg ディザリング法を使用してきましたが、ディザリングの量を指定できないことに気付きました。0 から 100 の間の量を指定できるようにしたいと思います。50 を指定すると、100 の半分のディザになります。または、0 を指定すると、結果の画像は無地になります。各色の間にハードエッジがあります...つまり、ディザリングはありません。floyed-steinberg、または Jarvis、Judice、Ninke ディザリングなど、金額を受け入れるルーチンの C# コードを探しています。誰か知っていますか?

0 投票する
1 に答える
51 参照

android - Farmville 2 の灯台ライトのピクセル グリッド (Samsung Note 2)

私は Samsung Note 2 で Farmville 2 をプレイしました。すべてのアルファ ライトに明確なグリッドがあることに気付きました。ただし、iPad Retina では発生しません。

この理由は何なのだろうか。GPU によるものですか、それとも開発者がデバイスのパフォーマンスを節約するために行ったのですか? 誰でも説明できますか?

最適化のためなら自分のゲームにも応用できるように勉強したいです。Unity 3D でゲームを作成しています。私に光を当ててください!

ありがとうございます!クアン

Samsung Note 2 から直接取得したスクリーンショット。画像ホストによって少し圧縮されています。まだグリッドが表示されることを願っています。

0 投票する
1 に答える
2068 参照

image - GraphicsMagic または ImageMagic での Floyd Steinberg ディザリング

GraphicsMagic を使用して画像を 1 ビット ディザ画像に変換する際に問題が発生しています。変換された画像は、サーマル プリンターの入力として使用されます。

次のコマンドを使用しています。

結果は 1 ビットのディザ処理された画像になりますが、品質は、たとえば GIMP からのディザ処理された画像とは異なります。

同じ結果を達成するためのヒントはありますか?(私は他の GraphicsMagic オプションを試しましたが、役に立ちませんでした)

オリジナル

オリジナル

グラフィックマジック

GM

GIMP

GIMP

0 投票する
1 に答える
1867 参照

colors - 24 ビット RGB と 8 ビット カラー間の変換

24 ビット (8R、8G、8B) を 8 ビット (RRRGGGBB) 色に変換しようとしています。

カラーバイトを縮小して(シフト後に)それらを合計するという基本的な概念を理解しています。つまり、RGB(255,254,253) を指定すると、255/32*32 + 254/32*4 + 253/64 となり、これは 111,111,11b (白) になります。

これは、赤と緑が多い写真ではうまく機能しますが、青が現れ始めると、物事は本当にうまくいきません. 青は以前よりターコイズまたは紫に見え始めます。

私はディザリングをしようとしているのではなく、RGB と 8 ビットの間のより良いマッピングを見つけようとしています。

RGB を HSV に変換してから 8 ビットに変換することを検討しましたが、HSV から 8 ビットに変換する方法もわかりません。H バイトが RRRGGGBB に対応していません。あったとしても、白黒にはなりませんでした。H、S、V バイト (RGB で行った方法のように) を重み付けして、必要なものを取得する方法はありますか? それとも、RGB ストレートから 8 ビットへのより良いマッピングを見つけることに固執する必要がありますか?

0 投票する
1 に答える
1518 参照

c++ - オーダーカラーディザ

私は現在、4x4 の順序付きディザ マトリックスを使用して 24bpp の画像を 3bpp の画像に縮小する必要があるプロジェクトを行っています。しかし、ディザリング処理を行った後、私の画像は約 1/3 しか表示されません。私が間違っていることを誰かが知っていますか?

ソース:

前の画像は 512x512 の画像ですが、ディザリングされた出力画像は画像の一部 (512x170) にすぎません

0 投票する
3 に答える
954 参照

c# - ディザリング アルゴリズムが非常に遅い

ここにいくつかのコンテキストがあります。私は ShiftOS と呼ばれるこのゲームに取り組んでいます。このゲームは、多くの機能を備えた 80 年代のオペレーティング システムの最低限の実行として始まる OS で行われます。

ユーザーがバイナリ (2 色) の色深度で開始する必要があり、画面に白黒しか表示できないメカニズムを追加しようとしています。次に、色深度を 1 ビットから 2 ビット、4 ビット、さらには 24 ビットにアップグレードする必要があります。これは非常に優れたメカニズムですが、実際には非常に難しいようです。

もちろん、この頃の古いシステムは、画像を見栄えよくするために少なくとも試みましたが、もちろん、エンジニアによって与えられたカラー パレットによって制限されていたので、画像をディザリングして、次のように見えるようにピクセルを配置する必要がありました。実際には2色しか使用できないのに、画像はより多くの色を使用していました.

そこで私はいくつかの優れたディザリング アルゴリズムを調べ、Floyd-Steinberg アルゴリズムの学習を開始し、すぐにそれを and に移植しましC#System.Drawing

これが私が使用するコードです。

は、引数を介して関数に渡されることにsource注意してください。Image

このコードはかなりうまく機能しますが、問題は、ディザリングが別のスレッドで発生して、ゲームのスローダウン/ラグを最小限に抑えていることです。ディザリングが発生している間、オペレーティング システムの通常の 24 ビット カラー/イメージが表示されます。ディザリングにそれほど時間がかからなければ、これで問題ありません。

ただし、このコードではアルゴリズムが非常に遅く、ディザリングしている画像のサイズによっては、ディザリング プロセスに 1 分以上かかる場合があります。

ゲームスレッドとは別のスレッドで物事を実行したり、スレッドが終了したときに関数に与えられたアクションを呼び出したりするなど、考えられるすべての最適化を適用しましたが、これはあったとしてもほんの少しの時間を削るだけです.

したがって、これをさらに高速に動作させるための最適化があるかどうか、可能であれば合計で数秒かどうか疑問に思っています。また、ディザリング操作が行われている間、顕著なシステム ラグが発生していることにも注意してください。必携の 60FPS PC マスターレース担当者にとってはクールではありません。