プロが教えるわが家の防犯対策術!

dcrawは各種のデジタルカメラのRAWデータを
・24bit PPM
・48bit PPM
・Adobe PSD
のいずれかに変換するツールで、ソースも
http://www.cybercom.net/~dcoffin/dcraw/
にて公開されています。

このソースで質問ですが、24bit PPMとして書き出す
write_ppm(FILE *)
関数で何か値をかけたりして色データを作っているようですが、
どうしてこういうことをするのですか?
RAWデータは各色データが8ビット以上あるので、どうにか8ビットに変換しているのですか?

カメラのことや、C言語についてもそこそこの知識しかないので分かりません。
分かる方、ご教授お願いします。

A 回答 (2件)

第4チャネル=αチャネル(背景色の透過度比など)


をRGBに反映する処理をしている。
32bitだと、RGBA として、Aが持てるが、24bitだと
RGBのみになるため。

この回答への補足

mcWalkerさん、毎度回答ありがとうございます。

ということは、dcrawは16bit/channelのPPMをはき出せるのですが、そのときも同じようにしているのですか?16bit/channelのPPMの画素データを加工して、8bit/channelの画像と同じものを作ることはできますか?

もしお分かりでしたらご教授お願いします。

補足日時:2004/05/11 09:14
    • good
    • 0

PPMのデータ構造にくわしくありませんが、


RGBの、例えば R だけに対して、Mac では 32 bits 引き当てたり、
5 bits にして、5+5+5+1(1は無駄)=16 bits RGB もあります。
1色当たりのビットが少ないと、表現範囲が減って絵が不自然になりますが、
論理的にはありえるわけです。
1色 8 bits なら、0 - 255 の値に比例計算しますので、
16 bits -> 8 bits も計算可能です。
但し、色の場合は、linear な比例計算では、発色がうまくない場合もあり、
いろいろの変換をやる場合があります。
RGB -> RGB の計算でなく、RGB -> HLS -> RGB と迂回する場合も
あるようです。
色の表現は、この他にも、まさに色々あります。少ないビットで、
元の絵を忠実に再現しようと苦心しているようです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

なるほど、そういうのもアリなんですね。
毎度、mcWalkerさんに助けていただき感謝です。

お礼日時:2004/05/11 13:16

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