アプリ版:「スタンプのみでお礼する」機能のリリースについて

多分ものすごく基本のことだと思うのですが、質問させてください…。

タイトルにもあるとおり、プログラムを勉強していたら画像処理のところで「0x00ff0000」などのような記述が出てきたのですが、これはどう読めばいいのでしょうか?

よろしくお願いします。

A 回答 (3件)

(蛇足?)


参考URLは、RGBの並びです。
ちなみに、BorlandC++Builderは、BGRの並びで指定します。
(最上位8bit(16進2桁)の使用経験はありませんが、・・・意味があるようです。Help"TColor型")

参考URL:http://www.colordic.org/
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
URL、参考にします。

お礼日時:2007/11/30 00:33

0x00ff0000は、C言語の16進表記ですね。


VBでは、&H00FF0000と表記します。
10進数に変換すると16711680。
0xff(16進)=255(10進)なので、255×256×256と計算すれば、筆算でも変換できます。
16進数は1桁が4bit、2桁で8bitを表す事も意識して、使い分けると良いでしょう。
情報処理技術者試験に出た時は、こうして変換してください。

ところで、画像処理との事なので、RGB(Red,Green,Blue)の画素の表記じゃないでしょうか?
RGBの3色を各色8bitで表すと、10進表記で0~255の256階調になります。
16進表記では、0x00~0xff。
0x00ff0000は、2桁づつに区切って、R=0xff(256)、G=0x00(0)、B=0x00(0)の事だと思います。

8bit×3色で、24bitあれば1画素が表現できるのですが、C言語でlong型は32bitなので、最上位の8bit(16進2桁)は無駄になります。
でも、画像処理演算の時には、扱いやすくするためにこうして32bitに合わせています。

蛇足ですが、ファイルに格納する場合などは、ファイルサイズを小さくするために24bitの形にして詰め込んで、無駄な8bitは作らないようにします。
    • good
    • 0
この回答へのお礼

とても丁寧な回答ありがとうございます。
質問する時点で、書いておけばよかったのですが、勉強している言語はjavaでその中で
int bgColor = 0xff000000;
という使い方でint型で使われています。。。

画像処理なのでRGBの表記だと思うのですが、最初の宣言は0xff000000というように左端4桁が質問文で記したの(0x00...)と違って0xff...なのですが、これはどういうことを示すのでしょうか?

お礼日時:2007/11/29 23:56

『ゼロエックスゼロゼロエフエフゼロゼロゼロゼロ』ってことですか?


意味的には C言語などで使われる16進数表記です

0-9とA-Fまでの組み合わせで1桁で0から15までをカウントできます
0x0Aが10
0x0Fが15
0x10が16
0x100が256
といった具合です

画像処理なら RGBなどのデータをひとまとめに扱う際に
赤だけのデータが欲しいとか 緑だけのデータが欲しい
などの欲求があると思います
その際に マスクを掛けて希望のデータなどを取り出すためにご質問のようなデータを使います
    • good
    • 0
この回答へのお礼

ありがとうございます。
一応javaを勉強していて出てきたのですが、まぁ一緒…ですよね?

お礼日時:2007/11/29 23:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!