問題タブ [alphablending]

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

c# - C# アルファ ブレンドの透明な PictureBox

フォームに表示されている Web カメラ フィードがあり、その上に描画したいと考えています。私は画像ボックスを使用してこれを行うつもりでしたが、PictureBox は真の透明度をサポートしておらず、フォームの色だけをサポートしていることがわかりました。また、フォームを表示する方法と同様に、表示したい方法であるアルファブレンディングもサポートしていません。

誰もこれを行う方法を知っていますか? または、これを実行できるコントロールを実装していますか?

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

gdi+ - 別の画像からの Gdiplus マスク画像

別の画像のアルファを使用して画像のアルファを操作する方法はありますか?

Image があり、そのアルファを左から不透明に、右から完全に透明に変更したいとします。現在、LinearGradientBrush を使用して別の画像を描画し、ピクセルごとにループして 2 番目の画像から元の画像のアルファを設定します。Gdiplus に別の方法があります。 、いくつかの画像マスク、または 2 つの画像のアルファをブレンドしますか?

結論: GDI+ で 2 つの画像をブレンドする方法はないようです。唯一の方法は、ピクセルを反復処理する手動の方法のようです。

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

c++ - iPhone OpenGL ES の不適切なアルファ ブレンディング

iPhone で openGL ES を使用すると、アルファ ブレンディングの結果が正しくないという問題があります。

これは、テクスチャ オブジェクトを作成するための私のコードです。

「tex_data」は、zlib でパックされた生の RGBA8888 データからロードされます。デバッガーで確認したところ、正常にロードされます。

これは、レンダリング前にテクスチャを設定するための私のコードです:

私が期待したものとここにあるもののサンプルをアップロードしました: sample . サンプルでは、​​下部のテクスチャのほとんどが真っ黒で、不透明度は 70% です。ただし、openGL はグレーとしてレンダリングします。この問題は、ブレンドを使用するすべてのテクスチャに影響します。

OGLES PVRVFrame を使用して Windows でコードをテストしたところ、結果は期待どおりでした。黒は黒としてレンダリングされます。

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

cocoa - GTK と OSX でピクセルごとのアルファ ブレンドを行う API はありますか?

Linux (GTK) と OSX で透明なウィンドウ (アルファ チャネル付き) を描画したいと考えています。それを行うAPIはありますか?グローバルな透明度を設定したくないことに注意してください。アルファ レベルはピクセルごとに設定する必要があります。

この例のように、Windows の UpdateLayeredWindow 関数と同じ種類の API を探しています: Per Pixel Alpha Blend

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

c# - オープンソース ソフトウェア (KeePass) の変更を手伝ってくれる人はいますか?

KeePass Password Safe 2 をご存知ですか? それはオープンソースであり、私はいくつかのことをしようとしていますが、コードがどこでこれを行っているのか、なぜそれを行っているのかまったくわかりません。

ソースコードはこちらで、C# でコーディングされています: http://downloads.sourceforge.net/keepass/KeePass-2.08-Source.zip

問題は、アルファ ブレンドされた PNG ファイルからのものである場合、TreeView ノードと ListView エントリのアイコンが正しくレンダリングされないことです。たとえば、16x16 の画像を作成し、赤一色で塗りつぶしましたが、透明度は 50% で、PNG として保存しました。次に、このアイコンを TreeView ノードの 1 つに追加すると、KeePass はこのアイコンを灰色がかった色で表示します。

ご存知のように、私はこのアプリケーションの作成者ではありません。コードの特定のブロックを投稿することはできません。なぜなら、どのブロックが問題を引き起こしているのかわからないためです。

誰か助けてくれませんか?

編集:
ここで問題を見つけたと思います: http://www.codeproject.com/KB/miscctrl/AlphaImageImagelist.aspx

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

java - アルファブレンディングを使用して、後でペイントするために複数の画像を 1 つの画像に結合します

複数の画像を指定することでオブジェクトを「壁紙」にできる Java 用のグラフィックス システムがあり、(比較的) 複雑な位置合わせとサイズ変更オプションを適用できます。

(特に非常に低電力のデバイスで) 適切に実行するために、壁紙が最初に描画されるときに内部画像に画像を描画し、次にその合成画像をターゲット グラフィックス コンテキストにコピーして画面に表示します。その後、オブジェクトのサイズが変更された場合にのみコンポジットが再作成されるため、その後の再描画の唯一の作業は、クリップされた領域をコンポジットからターゲット グラフィックス コンテキストにコピーすることです。

ソリューションは非常にうまく機能しますが、アルファチャンネルの透明度を持つ PNG 画像がある場合、コンポジットをペイントするときにアルファチャンネルが失われます。つまり、コンポジットにはすべてのピクセルが完全に不透明です。そのため、画面上のグラフィックス コンテキストへの後続のコピーでは、壁紙のオブジェクトの背後にあるものが透けて見えるようにできません。

RGBImageFilter を使用して完全に透明なピクセルを除外することはできましたが、ブレンドされた透明度を機能させるための解決策がわかりません。

アルファチャンネルをそのままにして画像をペイントし、アルファ値を持つ2つのピクセルが重なっている場合は結合する方法を知っている人はいますか?

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

delphi - Delphi でアルファブレンドされた PNG 形式でフェード インする

Vista が最初にリリースされた数年前に、これについて質問しましたが、問題を解決することはなく、後で検討するものとして棚上げしました。

見栄えを良くするために多大な努力を払ったスプラッシュスクリーンがあります。32bpp のアルファブレンド PNG です。デスクトップ構成がオフになっている場合、Windows XPまたはVista +でうまく機能するいくつかのコード(必要に応じて掘り下げることができます!)があります。しかし、Vista+ では透明部分がすべて黒くなり、見栄えがすべて崩れてしまいます。

だから、私の質問は次のとおりです。デスクトップ構成がアクティブ化されている場合とされていない場合の両方で機能する方法で、32bpp アルファブレンド PNG をスプラッシュ画面として表示できた人はいますか? 私は、必要に応じて、無料であろうとなかろうと、サードパーティのコンポーネントを使用することに反対していません。

理想的には、これは Delphi 7 で機能します。

更新: 非常にうまく機能する以下の回答に加えて、TMS TAdvSmoothSplashScreen コンポーネントも、多少複雑ではあるが、このタスクを非常にうまく処理することがわかりました。

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

java - J2ME (CDC/PP 1.1) を使用してアルファブレンディング BufferedImage を作成する方法

を使用して作成された BufferedImage があります

他の複数の画像を使用して壁紙を組み立てます。Jave SE では正常に動作しますが、J9 CDC/PP プラットフォームでコードを実行しようとすると、個人プロファイルの BufferedImage にコンストラクターがないことがわかりました。

CDC 1.0 とPersonal Profile 1.1を使用して、アルファチャンネルをサポートする画像を作成する方法を教えてもらえますか?


編集:今のところ、NoSuchMethodError(など)を処理するフォールバックコードを作成し、GraphicsConfiguration.createCompatibleImage(int、int)で画像を作成するだけです。アルファブレンディング画像が作成される可能性がありますが、他の優先事項があるため、それを具体的にテストできるようになるまでには数週間かかります (ハンドヘルドでのテストは私の直接の責任ではないため、私の手に負えません)。

より良い答えが見つかったら、これに対する答えとして投稿します。それまでの間、他の誰かが私を打ち負かした場合、それが機能する場合はあなたの答えを受け入れますのでご安心ください。その答えは近い将来、私にとって興味深いものになります(2〜5年後にはまだ答えが必要になると思います) .

0 投票する
4 に答える
6007 参照

c# - Windows フォーム: カーソル ビットマップを部分的に透明にする

ドラッグ アンド ドロップ操作で部分的に透明な画像を使用したい。これですべての設定が完了し、正常に動作しますが、実際の透明度への変換には奇妙な副作用があります。何らかの理由で、ピクセルが黒い背景に対してブレンドされているように見えます。

次の図は、問題を説明しています。

透明性の問題

図 a) は元のビットマップです。

図 b) は、アルファ ブレンディングが実行された後に生成されるものです。明らかに、これは意図した 50% アルファ フィルターよりもかなり暗いです。

図 c) は目的の効果、画像 a) は 50% の透明度 (描画プログラムでコンポジションに追加) です。

透明な画像を生成するために使用するコードは次のとおりです。

アルファブレンディングが機能しない理由を知っている人はいますか?

アップデート I:

明確にするために、描画されたサーフェスの上でアルファブレンディングを行っている場合、コードは機能します。問題は、既存の画像から完全に半透明の画像を作成し、これをドラッグ アンド ドロップ操作中に動的カーソルとして使用することです。上記をスキップして、色 88ffffff の塗りつぶされた長方形のみをペイントしても、濃い灰色が得られます。アイコンで何か怪しいことが起こっています。

更新 II:

いろいろと調べて、これが Cursor の作成と関係があると信じているので、そのコードも以下に含めます。CreateIconIndirect 呼び出しの直前にビットマップを GetPixel サンプリングすると、4 つの色の値はそのままのように見えます。したがって、犯人は IconInfo 構造の hbmColor または hbmMask メンバーである可能性があると感じています。

IconInfo 構造は次のとおりです。

そして、実際に Cursor を作成するコードは次のとおりです。

2 つの外部関数は次のように定義されます。

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

java - Javaスインググラフィックスカラーブレンディング

さまざまなグラフィックス オブジェクトでレンダリングしている図形がたくさんあります。シェイプが重なるときに、アルファブレンディングを使用して色を組み合わせたいと思います。ただし、レンダリングされた他のものではなく、他の形状とブレンドするだけです。これは可能ですか?

ありがとう、

ジェフ