いつもお世話になっています、ddです。
下記の参照して、画像処理をやっています。
http://eternalwindows.jp/graphics/bitmap/bitmap11.html
COLORREF crTransparent = RGB(0, 255, 0);
b = (BYTE)(GetBValue(crTransparent));
g = (BYTE)(GetGValue(crTransparent));
r = (BYTE)(GetRValue(crTransparent));
確認して以下の通りです
b=0
g=255'・’//ここで、余分が付いています。
r=0
g=255'・’の余分がどう取り除きますか。
よろしくお願いします。
環境:.Net2002 Windows XP
いつもお世話になっています、ddです。
下記の参照して、画像処理をやっています。
http://eternalwindows.jp/graphics/bitmap/bitmap11.html
COLORREF crTransparent = RGB(0, 255, 0);
BYTE r, g, b;
b = (BYTE)(GetBValue(crTransparent));
g = (BYTE)(GetGValue(crTransparent));
r = (BYTE)(GetRValue(crTransparent));
確認して以下の通りです
b=0
g=255'・’//ここで、余分が付いています。
r=0
g=255'・’の余分がどう取り除きますか。
よろしくお願いします。
環境:.Net2002 Windows XP
>g=255'・’//ここで、余分が付いています。
どういうこと?
どうやって確認しているんでしょうか?
デバッグ時に見えるローカルウィンドウ?ウォッチ?自動変数?
型がBYTE(unsigned char)のとき対応する文字が値のところに表示されてるように見える
のですがそのことでしょうか?
BYTE c = 49;
だと
名前 値 型
c 49'1' unsigned char
と表示される。
BYTE の実際の型は unsigned char でしょうか。
char なので VC++ は文字列として扱おうとしますが、NUL 終端がないのでゴミがあるよ
うに見えます。
BYTE 自体にゴミがついているというわけではないので心配はいりません。
Blueさん
ご返事ありがとう。
>名前 値 型
>c 49'1' unsigned char
そうです。
どういうことでしょうか。
よろしくお願いします。
aetosさん、
ご回答ありがとう。
>BYTE 自体にゴミがついているというわけではないので心配はいりません。
なるほど、わかりました。
皆さん、ありがとうございました。
>そうです。
>どういうことでしょうか。
単に、(親切にも)対応する文字を表示しているだけ。
0xff は対応する文字がないから '・' を表示している。
値はちゃんと0xff(=255)だから問題ない。
BYTE b = 255;
int n = b;
名前 値 型
b 255'・' unsigned char
n 255 int
や、俺間違ってましたね。お恥ずかしい。
訂正に感謝です。