はじめまして、
画像描画について質問です。
現在ライブラリをDLしてサンプルを動かしているいました。
画像描画関数
例えば DrawGraph
---------------------------------------
DrawGraphの第四引数にTRUEを渡すとライブラリの説明かから抜粋すると
TRUEにすると画像ファイルの限りなく黒に近い部分を 透過色とし、その部分は画面上に元から画像が残ります。
---------------------------------------
とかいてあるので黒い部分が抜けるのはわかります。
ならば任意の場所を抜きたい場合はアルファチャンネルの画像を用意して抜けばいいのだと思いついてきたサンプルを少しだけ改造して下のですがそこでしつもんがあります。
---------------------------------------
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode( TRUE ) ;
int GHandle ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// BMP画像のメモリへの読みこみ
GHandle = LoadGraph( "test6.bmp" ) ;
// 画面左上に描画します(『DrawGraph』を使用)
DrawGraph( 0 , 0 , GHandle , TRUE ) ;
// 画面左上に描画します(『DrawGraph』を使用)
DrawGraph( 300 , 0 , GHandle , FALSE ) ;
// キーの入力待ち(『WaitKey』を使用)
WaitKey() ;
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
---------------------------------------
二個目のDrawGraphの引数をFALSEにした場合、アルファで抜く事出来ないのですが、アルファで抜く場合は、引数をTRUEにしなければいけないのでしょうか?
でもTRUEにした場合は「限りなく黒に近い部分を 透過色とし」が生きてくるのでアルファの画像ある場合は良いですが、無いファイルは黒で抜けてしまうので何かうまい方法は無いのでしょうか?
引数にTRUEを渡して画像描画する画像に対のアルファ画像をすべて用意すれば問題ないと思うのですが、そればあまりにもあまりなので、何か良い案等々ありましたら、ご教授ください。