問題タブ [porter-duff]

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 投票する
0 に答える
62 参照

android - ペイントされていないピクセルにのみビットマップをペイントする方法は?

32 ビットのオフスクリーン ビットマップにマップされたキャンバスに描画したい 32 ビットのビットマップがあります。オフスクリーン ビットマップは通常空 (作成されたばかり) ですが、既にいくつかのものをペイントしている場合があります。この場合、この別のビットマップをペイントするときに、ペイントしたものをそのままにしておく必要があります。

したがって、デスティネーション ピクセル (x,y) が設定されている場合、drawBitmapへの呼び出しでソース ピクセル (x,y) の描画をスキップする必要があります。

これはできますか?

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

android - Android Porter-Duff 合成パフォーマンス

さまざまな Porter-Duff モードを使用したビットマップ合成の相対的なパフォーマンスに関するインターネット記事や Google ドキュメントを見つけることができませんでした。プログラミング中に非常に明白になったのは、従来の SRC/DST プレフィックス モードが、Android の Mode.DARKEN、Mode.LIGHTEN、Mode.MULTIPLY モードよりもはるかに高速 (3 ~ 4 倍) 実行されていることです。後者のモードを使用すると、720p 画面でライティング マスクをレンダリングするときに、ゲーム エンジンのパフォーマンスが 40+ から約 13 FPS に低下する可能性があります。

したがって、私の質問は次のとおりです。

  1. 提供されている Porter-Duff モードよりも、darken/lighten プロパティを使用して画像を合成するための高速な方法はありますか? OpenGL に切り替える価値はありますか?
  2. 異なる合成モードの相対速度に関するデータはありますか?
0 投票する
7 に答える
23553 参照

android - キャンバスに描画 - PorterDuff.Mode.CLEAR は黒を描画します! なんで?

シンプルに動作するカスタム ビューを作成しようとしています。0 度から 360 度までのアーク パスで表示されるビットマップがあります。一部の FPS では度数が変化しています。

onDraw()そこで、メソッドをオーバーライドしてカスタム ビューを作成しました。

arcPaint次のように初期化されます。

これで、すべてがうまく描画されますが、... ビュー全体で背景が黒くなっています。

設定canvas.drawColor(..., PorterDuff.Mode.DST)して省略するとcanvas.drawBitmap()、アークは透明な背景に適切に描画されます。

私の質問は、PorterDuffモードを設定して透明度を調整する方法です。

もちろんbitmap、アルファチャンネル付きの 32 ビット PNG です。

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

android - 特定のビューの下のビューに対する Android の PorterDuff の色効果

android で、その境界内に表示されている下のすべてにカラーフィルターを適用する方法でビューを設定することは可能ですか? この例のように:

ビューのフィルタリング

その下のすべての色を反転する単純な長方形のビュー。もちろん、ユーザーがリストをスクロールすると、反転したボックスにも反映されます。カラーフィルター、PorterDuff モードなどを使用して簡単に行う方法はありますか?

0 投票する
0 に答える
1628 参照

android - Androidでマスクされた画像から白い背景を削除します

そのビットマップの上に描画されたポリゴン形状のビットマップをトリミングしたい。これを行うためにビットマップのマスキングを使用しています。操作はうまくいきましたが、残念ながら、マスキング後の結果のビットマップには、画像でわかるように、トリミングされた領域に白い背景があります。 ここに画像の説明を入力

そして、画像の周りに長方形をドラッグし、画像の上に多角形を作成することでランタイムに作成されたマスクは次のとおり ここに画像の説明を入力 です。この不要な白い背景を削除したいと思います。どうすればこれを行うことができるか考えている人はいますか?どうすればよいかについての手がかりや助けをいただければ幸いです。前もって感謝します。

0 投票する
2 に答える
4336 参照

android - ペイント キャンバスの Android Eraser が消去されない

消しゴムを有効/無効にする次のコードがあります。

setPaint は私の customView からのものです:

そして私が使用するonDraw:

消しゴムを無効にすると赤い線で描画されますが、代わりに消しゴムを有効にすると、消去ではなく黒い線が描画されます。どうすればこれを修正できますか

0 投票する
0 に答える
326 参照

android - PortedDuff Clear は Android 2.3.6 では動作しません。黒で描画します

今、このコードの約 6 ~ 7 のバリエーションを試しましたが、何かが正しくありません。私はほとんど同じコードを持っています (ondraw の部分だけが少し異なり、指の入力をキャッチする準備ができています) が動作します。しかし、ここでは黒で描画します。時計に似たタイマーを作成する必要があります。だから私は赤で円を描き、経過時間に応じて、その円の上に PorterDuff.Mode.CLEAR で描画して削除します。現在、私は通常これを行いませんが、私はちょっと必死で、すぐに答えが必要なので、クラスからすべてのコードを投稿します。アクティビティまたはビューのどこにでもある可能性があります:

これは、相対レイアウトに追加するために作成したカスタム ビューです。

これは、TimeView を追加するアクティビティです。

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

android - 塗りつぶされたAndroidキャンバスに透明な円を描きます

ここに画像の説明を入力

私は非常に単純なことをしようとしています(上記を参照)。中央の円を塗りつぶすピクセルを除いて、キャンバスのすべてのピクセルを無地にしたい。この件に関する何百ものスタック オーバーフローの投稿を読み、PorterDuff.Mode の設定など、何百ものことを試しました。これが私の現在の onDraw() の MyView extends View です:

私は何かを誤解していますか?なぜ既存のピクセルを透明なペイントで塗りつぶすことができないのですか? これを行うと、ピクセルは同じままです。PorterDuff を使用すると、ピクセルが黒くなります。助けてください。