問題タブ [alpha]
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.
winapi - 透明なトップレベル ウィンドウ
透明なトップレベル (つまり、WS_CHILD ではない) ウィンドウを作成したいと考えています。ただし、特定のピクセルが完全に透明または完全に不透明な単純なマスクにはしたくありません。そして、ウィンドウ全体にアルファレベルがあるようなものにしたくありません。むしろ、ビットマップがその背後にあるウィンドウとブレンドされるように、ウィンドウを基本的に完全に透明にし、ビットマップをアルファチャンネルで描画したいと思います。たとえば、画像自体のアルファが不透明から完全に透明にブレンドされて中心から外側に向かうサンバーストを想像してみてください。
どちらも私がやりたいことに近いが、完全ではない2つの方法を見つけました。領域を使用して、完全に透明に描画されたセクションを切り取ることができます。レイヤード ウィンドウを使用して、同様のことを行うこともできます (または、ウィンドウ全体をわずかに透明にすることもできますが、それは私が望んでいることではありません)。WS_EX_TRANSPARENT や WS_EX_COMPOSITE などの他のスタイルを調べましたが、役に立ちませんでした。
子ウィンドウは親の領域内で親ウィンドウとブレンドされているため、この種の効果を子ウィンドウでうまく機能させることができます。トップレベルのウィンドウで同様に動作させることは、私を避け続けています。
人々が他のプログラムで見たことがあると私に保証したので、私はこれができることを知っています. ここでウィンドウのペイントに関する単純なことを完全に理解していないように感じます。
c# - 正規表現 - アルファベット文字が含まれている場合にのみ文字列に一致します
文字列の例
1 番目と 3 番目をキャプチャしたいのですが、2 番目はキャプチャしたくありません。アルファベット文字が含まれていないためです。plz help
delphi - Builder と Delphi による Inscriber テクノロジー - アルファ チャネルのサポート
Inscriber Technology の Via Builder を使用しています。このアプリは、TGA シーケンス アニメーションを 1 つの .via ファイルにマージし、このファイルが最適化されているため、大きなシーケンスをロードする方がはるかに優れています。一部のアドビ製品でこれを使用するためのプラグインがあります。
私は Delphi に取り組んでいますが、私の問題は、フレームから元のアルファ チャネルを取り戻せないことです。VIACODECLib_TLB ライブラリを使用して、次の関数を作成しました。
IViaFile インターフェイスから。この関数は、元のシーケンスからフレーム ビットマップへのハンドルを返すことになっています。次のコードが機能する可能性があります。
しかし、結果として得られるビットマップは、アルファ チャネルのない元のフレームです。実際には、そのアルファ チャネルは画像全体でゼロです。
何か間違ったことをしていると仮定して、GetDIBits 関数を使用して、アルファ チャネルがどこかにあることを確認しました。そのため、ビットマップに 4 つのチャネルがあり、GetDIBits 関数を使用すると仮定して、ビットマップを格納するのに十分な長さのメモリを割り当てました。以前と同じ結果が得られました。通常のフレーム、画像全体のアルファ チャンネル ゼロです。
Inscriber (そのフォーラムは終了しています) は、Via Builder が完全なアルファ版をサポートしていると主張しています。GetDIBits 関数を使用して C++ でフレームを正しくロードできた人を知っていますが、コードを Delphi に「変換」することはできませんでした。
どんな助けでも大歓迎です。
ありがとうございました。
bitmap - ビットマップにアルファチャンネルがあるかどうかをプログラムで検出する方法は?
主題として。できればCコードを使用してください。
windows - レイヤードウィンドウを使用して滑らかなウィンドウの境界線を作成する
ほとんどのウィンドウにさまざまな丸みを帯びたエッジを持つスキンアプリを開発しています。私はウィンドウ領域を使用して非長方形の形状を定義していますが、ピクセルは完全に不透明または完全に透明にしかできないため、ほとんどすべての人がギザギザのエイリアシングに反対しています。
レイヤードウィンドウを使用してこれに対する解決策を考え出しましたが、これがさまざまなシステムで実行される(そしてうまくいけばうまくいく)ことを確認したいと思います。私がしていることを最適化します。階層化されたウィンドウにはwin2000以降が必要ですが、それは他の理由ですでに必要であるため、問題ありません。いくつかの基本的なテストから、Vistaでは問題ないように見えますが、それはまだ保証されていません。
私がしていることは次のとおりです。私はウィンドウを持っており、それをAと呼び、コントロールとテキスト、およびそのウィンドウを構成するものは何でもあります。ウィンドウAの子としてウィンドウBがありますが、WS_CHILDではなくWS_POPUPスタイルであるため、Aの領域の外側に配置でき、Aのコントロールの上に描画されます。ウィンドウBにもWS_EX_LAYEREDスタイルがあり、初期化時に、ULW_ALPHAフラグを使用してUpdateLayeredWindowを呼び出し、アルファチャネルを使用して32ビットビットマップを使用してソースDCを呼び出し、ピクセルごとのアルファで描画します。
ウィンドウBのソースDCで使用されるビットマップは、ウィンドウの背景から完全な透明度にスムーズにブレンドしたいウィンドウの境界の周りのピクセルにすぎません。2つのウィンドウのアプローチ全体をスキップし、単一のレイヤードウィンドウを使用します。ただし、UpdateLayeredWindowを使用している場合は、通常のWM_PAINTメッセージなどの代わりに、メモリに保持されているバッファーから取得され、取得しようとします。インタラクティブな子コントロール(および子ウィンドウ)をうまく機能させることは、非常に面倒なことのように聞こえます(そして、おそらくすべてに対して機能するわけではありません)。
つまり、基本的にはウィンドウAであり、すべての子コントロールなどがあり、ウィンドウBはその上に直接浮かんでいて、滑らかな境界線を描画しています。WM_MOVEメッセージなどに応答するために、ウィンドウBを一緒に移動し、ウィンドウBを無効にして、フォーカスや入力を取得できないようにします(ウィンドウBの一部、たとえば大部分など、不透明度がゼロの部分があるため、クリックはすでに通過しています。その内部の部分の、すでにピッキングから除外されています)。
キックの場合、これがどのように見えるかを示し、私がもう少し良い意味を示しています。
- ウィンドウAの背景。完全に透明なピクセルをマスクするためにシアンが使用されています。
- ウィンドウBのビットマップ。アルファチャネル(もちろん写真にはありませんが、jpgです)があり、黒以外のピクセルを透明にブレンドします。
- 結合された結果
だから、それは機能しますが、それが本当にこれを行うための最良の方法であるかどうかはわかりません。2つの質問があります:
- これは許容できるように聞こえますか、それとも明らかにひどいことはありますか?
- 現在は機能しているため、ウィンドウのサイズ(最大1024x768)のオフスクリーンバッファを使用しているようですが、不透明度データがゼロ以外のピクセルはごくわずかですが、オーバーヘッドに見合う価値があります。そして、それを別々の境界部分に分割し、それらを一緒に合成するという追加の複雑さ?
iphone - iPhone でアルファチャンネルを使用して EAGLview コンテンツをキャプチャする
かなり長い間この問題に苦労してきましたが、これまでのところ答えを見つけることができませんでした. 基本的に、私がやりたいことは、EAGLview のコンテンツをキャプチャし、それを使用して他の画像とマージすることです。とにかく、主な問題は、私の EAGLview で透明なものはすべて、フォトアルバムに保存したり、UIImageView に入れたりすると不透明になることです。別の場所で見つけたコードをいくつか共有させてください。
}
すでに述べたように、これは EAGLview のコンテンツを完全に取得しますが、アルファ値を含む画像を取得できません。
どんな助けでも感謝します。ありがとう!
c++ - OpenGLのテクスチャから黒い背景を削除する方法
メイン画像を完全に不透明に保ちながら、24ビットビットマップの背景を削除する方法を探しています。これまではブレンドが目的を果たしていましたが、メインビットを不透明に保つ必要があります。私はグーグルで検索しましたが、役に立たなかったのですが、おそらく間違った用語を検索していると思いますので、助けていただければ幸いです。
編集:はい、申し訳ありませんが、現在、背景として黒を使用しています。
flash - ラジオボタンのラベルにアルファを設定
AS3 のいくつかのラジオボタンでアルファを 50% に設定しようとしています。問題は、ラジオボタンのラベルが変わらないことです。
誰でもこれを修正する方法を知っていますか?
opengl - openglで色とアルファブレンド関数を分離するにはどうすればよいですか?
私の 2D シャドウ レンダリング テクニックを Directx から Opengl に移植しようとしている過程で、opengl ブレンダーに十分にアクセスできないという問題に遭遇しました。
しかし、最初に、次のことが理にかなっているように、私のアルゴリズムは次のとおりです。
デプス バッファーを使用せずに、すべてのスプライトを後ろから前に並べ替えてレンダリングします。シャドウ スプライトは、それらをキャストするオブジェクトの直前に描画され、下の 2 番目のブレンドステートである gShadowBlendState を使用します。これにより、フレーム バッファのアルファ チャネルにアルファ値のみが描画されます。
通常のオブジェクトのスプライトは、以下で最初に指定された gBlendState を使用します。これは、バックバッファへの通常のアルファ ブレンドです。ただし、バックバッファ アルファ チャネルから不透明な範囲でアルファも削除します。これにより、影の前にある不透明なオブジェクトを通して影が見えなくなります。
3 番目に描画され、他のすべての後に描画されるのは、以下の影の色と最終的なブレンド状態を使用してレンダリングするフルスクリーン クワッドです。不透明度にバックバッファのアルファ チャネルを使用し、以前に記述されたすべてのシャドウ情報を効果的に引き出します。
この演習の要点は、重なった場所で暗くならない影を取得することです。
ともかく。私はこれをOpenGLでやろうとしています。現在、アルファブレンディングを有効にしています
しかし、色とアルファ成分を計算する方法について個別の指示を与える方法がわかりません。私の質問はこれです: OpenGL で glBlendFunc() よりもブレンダーを細かく制御する方法はありますか?
png - FireworksのPNG8+Alpha(カラーマップ)は、他の場所(RGBA)とは異なる/小さいです。なんで?
Fireworksで、アルファ透明度のPNG8ファイルをエクスポートすると、結果のファイルは次のようになります。
他のツール(PNGOUT、Smush.it)を使用して32ビットPNGを変換すると、結果は次のようになります。
違いは正確には何ですか?どちらもアルファ透明度がありますが、Fireworksファイルは8KBで、その他は20KBです。これで、Fireworksファイルの品質が著しく低下します(つまり、グラデーションのバンディングが発生します)。
一部の画像では、FireworksのPNG8 + alphaがうまく機能し、ファイルサイズが比較的小さくなっています。Fireworksが何をしているのか、他の方法とどのように違うのかを理解できていません。