Jpeg画像の「ビットの深さ」を任意の値に変更したいのですが
どの様にすれば良いか分かりません。
ご存知の方おられましたらよろしくご教授お願いします。
JPEGは、色深度24bit固定だったと思います。
にしの様、ありがとうございます。
私も詳しい事は分かりませんが、24bitと8bitのJpegがあるそうです。
24bitは一般的ですが、8bitはグレイスケールのみで一般的では無いそうです。
参考ですが「Vieas」と言うソフトが相互変化を行っています。
http://www9.plala.or.jp/hrs17/soft.htm
これと同等の処理(24bit←→8bit)が行えたらと思っています。
何か情報などあればよろしくお願い致します。
調べてみました。
JPEGは、RGBでなく、YCbCr(YUVと同類)で保存しています。
Y、CbCr(CbとCrは2つで1つのテーブル)を、それぞれ1つずつのテーブルで保存しているものが、24bitJPEGです。
8bitJPEGの資料が手元にないので想像ですが、Yのみ保存するデータ形式ということでしょう。
いずれにせよ、DelphiでやるにはライブラリからDelphi(Pascal)に変換する必要がありそうです。
Cygwinなどを使うと、libjpegのソースが手に入ると思います。
# そのへんのanonymousFTPサイトで探せば見つかるかもしれません
参考にならなくてすみません。
TJpegImageクラスをDelphiのヘルプで調べてみたら、GrayScaleプロパティがありますよ。
これで解決しませんか?
解決です!
にしの様、ありがとうございます。
「Jpg.Grayscale:=True;」でアッサリ8bitになりました。
TJpegImageクラスにこの様な命令があるとは知りませんでした。
色々とお手数をおかけしまして申し訳ありませんでした。
ありがとうございました。
ツイート | ![]() |