- 1 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 14:02:11 ]
- スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。 「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ! 過去スレ、関連リンクは>>2-10くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで - Win32API質問箱 wiki wiki.livedoor.jp/program1/d/FrontPage Win32API質問箱 Build72 pc11.2ch.net/test/read.cgi/tech/1226575789/
- 38 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 01:47:06 ]
- そういやAlphaBlend() APIって計算式おかしいよね
Dst.Red = Src.Red * Src.Alpha + (1 - Src.Alpha) * Dst.Red Dst.Green = Src.Green * Src.Alpha + (1 - Src.Alpha) * Dst.Green Dst.Blue = Src.Blue * Src.Alpha + (1 - Src.Alpha) * Dst.Blue ↑これが正しいはずなのに > Dst.Red = Src.Red + (1 - Src.Alpha) * Dst.Red > Dst.Green = Src.Green + (1 - Src.Alpha) * Dst.Green > Dst.Blue = Src.Blue + (1 - Src.Alpha) * Dst.Blue ↑実際はこういう計算らしい なんでこんなおかしな仕様なんだろう
- 39 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 02:13:36 ]
- うそん
- 40 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 02:15:24 ]
- >>38
SrcとAlphaの対応は固定だから事前に計算しておけば計算量が減るだろ?
- 41 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 02:22:38 ]
- >>38
もっとちゃんとヘルプ見た方がいいぞ。
- 42 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 03:16:14 ]
- >>40
違う AC_SRC_ALPHAを指定するとSrc/Destは合成する画像のそれぞれのピクセルだから ピクセルごとにRed/Green/Blue/Alphaの値は違う
- 43 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 06:28:55 ]
- >>38-42
要するに、Src(32bppDIB)をDstに合成したいときは、 AlphaBlend(Dst, Src) ではなくて、 Tmp.Red = Src.Red * Src.Alpha Tmp.Green = Src.Green * Src.Alpha Tmp.Blue = Src.Blue * Src.Alpha Tmp.Alpha = Src.Alpha を用意しておいて、 AlphaBlend(Dst, Tmp) って事でしょ。使えねぇw
|

|