トップページ > 記事閲覧
画像描画関係の機能追加要望
名前:HS 日時: 2025/12/14 20:50

初めに、今回要望した機能が既に追加されていた場合はすみません。 現在私が作成しているゲームで以下の処理が必要になったので、そのための関数を追加していただけないでしょうか。 1.既存のグラフィックハンドルから、α値を明度にして(完全な透明は黒、完全な不透明は白といったように)新しいグラフィックハンドルを生成する関数 2.画像の描画時に、元の画像のα値ではなく別の画像(MakeScreenで生成した画像や既存のグラフィックハンドル)の明度をα値として描画する関数 上記2点の機能を追加していただけるとありがたいです。 よろしくお願いいたします。
メンテ

Page: 1 |

Re: 画像描画関係の機能追加要望 ( No.1 )
名前:管理人 日時:2025/12/14 21:30

> 1.既存のグラフィックハンドルから、α値を明度にして(完全な透明は黒、完全な不透明は白といったように)新しいグラフィックハンドルを生成する関数 既存の機能でも以下のような処理を行うことでα値を明度にするグラフィックハンドルを作成することが可能です // 同じサイズのグラフィックハンドルを作成 int SizeX, SizeY; GetGraphSize( GraphHandle, &SizeX, &SizeY ); int NewGraphHandle = MakeScreen( SizeX, SizeY, FALSE ); // 作成したグラフィックハンドルにα値を R,G,B,A に割り当てて転送 GraphBlendBlt( GraphHandle, GraphHandle, NewGraphHandle, 255, DX_GRAPH_BLEND_RGBA_SELECT_MIX, DX_RGBA_SELECT_SRC_A, DX_RGBA_SELECT_SRC_A, DX_RGBA_SELECT_SRC_A, DX_RGBA_SELECT_SRC_A ); > 2.画像の描画時に、別の画像(MakeScreenで生成した画像や既存のグラフィックハンドル)の明度をα値として描画する関数 描画時に別の画像の明度をα値として描画する関数はありませんが、1の実現に使用した機能を使用して明度( R成分 )をα値とした画像を作成することで 『別の画像の明度をα値として描画する』処理は実現することが可能です // 同じサイズのグラフィックハンドルを作成 int SizeX, SizeY; GetGraphSize( GraphHandle1, &SizeX, &SizeY ); int NewGraphHandle = MakeScreen( SizeX, SizeY, TRUE ); // 画像AのR,G,Bと、画像BのRをα値として作成したグラフィックハンドルに転送 GraphBlendBlt( GraphHandle1, GraphHandle2, NewGraphHandle, 255, DX_GRAPH_BLEND_RGBA_SELECT_MIX, DX_RGBA_SELECT_SRC_R, DX_RGBA_SELECT_SRC_G, DX_RGBA_SELECT_SRC_B, DX_RGBA_SELECT_BLEND_R ); // 描画 DrawGraph( x, y, NewGraphHandle, TRUE ); // 作成したグラフィックハンドルを削除 DeleteGraph( NewGraphHandle );
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存