ページ 1 / 1
輝度を変えて描画する関数
Posted: 2010年5月26日(水) 09:16
by 紙飛行機
輝度を変えて描画する関数を作ろうと思ってます。
ユーザーが指定したBrightから最初にセットする
輝度の値を拾いたいのですがどの様にすれば拾ってこれるのでしょうか?
Brightは0xffffffのようにセットし2桁でRGBを管理するようにしたいです。
void DrawCenterBright(int x,int y,int GrHandle,int Bright, int Alpha,bool Turn){
SetDrawBright(128,255,255);
// 描画処理
SetDrawBright(255,255,255);
}
Re:輝度を変えて描画する関数
Posted: 2010年5月26日(水) 09:27
by たいちう
これのことですか?
http://homepage2.nifty.com/natupaji/temp/DxLib.h
extern int GetDrawBright( int *Red, int *Green, int *Blue ) ; // 描画輝度を取得する
Re:輝度を変えて描画する関数
Posted: 2010年5月26日(水) 10:37
by 紙飛行機
すいません。
現在の輝度を拾ってくるのではなく
Brightに0xffffffと値を渡すと
ff,ff,ffのパラメータを見るような仕様にしたいです。
Re:輝度を変えて描画する関数
Posted: 2010年5月26日(水) 10:51
by たいちう
それでは、こういうことですか?
int bright = 0x123456;
int br = bright >> 16;
int bg = (bright >> 8) & 0xff;
int bb = bright & 0xff;
printf("%02x, %02x, %02x\n", br, bg, bb);
Re:輝度を変えて描画する関数
Posted: 2010年5月26日(水) 10:57
by たいちう
一応逆も。
int bright2 = br << 16 | bg << 8 | bb;
printf("0x%06x\n", bright2);
既に用意されているマクロを使う方法もあります。
(私の書いた例とはRGBの順番が逆になることに注意)
#define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))
#define GetRValue(rgb) ((BYTE)(rgb))
#define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8))
#define GetBValue(rgb) ((BYTE)((rgb)>>16))
Re:輝度を変えて描画する関数
Posted: 2010年5月26日(水) 11:03
by toyo
luminance = ( 0.298912 * r + 0.586611 * g + 0.114478 * b );
を輝度とするとRGBから輝度へは変換できますが輝度からRGBへは一通りには求められません
(未知数が3個で式が1つしかないので)
Re:輝度を変えて描画する関数
Posted: 2010年5月26日(水) 11:13
by たいちう
> luminance = ( 0.298912 * r + 0.586611 * g + 0.114478 * b );
> を輝度とするとRGBから輝度へは変換できますが輝度からRGBへは一通りには求められません
その輝度とSetDrawBrightで設定する輝度は違うものと思いますが、
紙飛行機さんが(もしかしたら私も?)混同している可能性はありますね。
Re:輝度を変えて描画する関数
Posted: 2010年5月26日(水) 18:05
by 紙飛行機
みなさま、色々な回答ありがとうございます。
やりたかったことはたいちう様の
int bright = 0x123456;
int br = bright >> 16;
int bg = (bright >> 8) & 0xff;
int bb = bright & 0xff;
printf("%02x, %02x, %02x\n", br, bg, bb);
です。
改修したところ問題なく動きました。
ありがとうございます。
この>>や&の意味が良くわからないのですが
どういうことなのでしょうか?
調べてみたらシフト演算?とand?という単語を見つけたのですが
理解できませんでした。
Re:輝度を変えて描画する関数
Posted: 2010年5月27日(木) 08:51
by たいちう