2017-08-24 16 views
0

私はMFCプロジェクトでATL :: CImageを使い始めました。これは非常に基本的な質問です。 私は、ATL :: CImageのメンバーが透明度を制御するためのAlphaBlend()と、回転のためのplgblt()をサポートしていることを知っています。しかし、私が理解しているように、それらはDC上の「表示」だけのためのすべての独立した機能です。 どのように画像の透明度と回転を適用して表示/保存できますか?どのようにしてATL :: CImageを使ってイメージを同時に半透明にすることができますか?

私はGDI +が私が望むものすべてをサポートしていることを知っていますが、私はCImageクラスのメンバーでそれらを実現する方法も知っています。

ありがとうございます。

+1

また、[boost GIL](http://www.boost.org/doc/libs/develop/libs/gil/doc/index.html)を検討することもできます。私はそれをWindows APIから解放するようにしました。 [Here](http://lakeweb.net/temp/gil.cpp)は、それがどのように見えるかです。 – lakeweb

答えて

1

これは同じ方法ではできません。各操作には一時的なDCを使用できます。

  1. 必要なサイズのビットマップを使用してDCを作成します。
  2. CImageの操作をDCに実行します。
  3. DCからビットマップを取得し、新しいCImageを作成するか、単にDCで作業します。

より良い方法は、常にこのような操作を実行するためにGDI +を使用することです。 CImageは、中間結果を保存する必要がある場合、またはそれを再利用する必要がある場合にのみ必要です。

関連する問題