Jpeg画像の「ビットの深さ」を変更するには

解決


yotuba  2003-08-31 22:03:33  No: 4519

Jpeg画像の「ビットの深さ」を任意の値に変更したいのですが
どの様にすれば良いか分かりません。
ご存知の方おられましたらよろしくご教授お願いします。


にしの  2003-08-31 23:39:51  No: 4520

JPEGは、色深度24bit固定だったと思います。


yotuba  2003-09-01 02:32:02  No: 4521

にしの様、ありがとうございます。

私も詳しい事は分かりませんが、24bitと8bitのJpegがあるそうです。
24bitは一般的ですが、8bitはグレイスケールのみで一般的では無いそうです。
参考ですが「Vieas」と言うソフトが相互変化を行っています。
http://www9.plala.or.jp/hrs17/soft.htm
これと同等の処理(24bit←→8bit)が行えたらと思っています。

何か情報などあればよろしくお願い致します。


にしの  2003-09-01 03:01:43  No: 4522

調べてみました。
JPEGは、RGBでなく、YCbCr(YUVと同類)で保存しています。
Y、CbCr(CbとCrは2つで1つのテーブル)を、それぞれ1つずつのテーブルで保存しているものが、24bitJPEGです。
8bitJPEGの資料が手元にないので想像ですが、Yのみ保存するデータ形式ということでしょう。
いずれにせよ、DelphiでやるにはライブラリからDelphi(Pascal)に変換する必要がありそうです。

Cygwinなどを使うと、libjpegのソースが手に入ると思います。
# そのへんのanonymousFTPサイトで探せば見つかるかもしれません

参考にならなくてすみません。


にしの  2003-09-01 03:08:11  No: 4523

TJpegImageクラスをDelphiのヘルプで調べてみたら、GrayScaleプロパティがありますよ。
これで解決しませんか?


yotuba  2003-09-01 06:23:41  No: 4524

解決です!
にしの様、ありがとうございます。
「Jpg.Grayscale:=True;」でアッサリ8bitになりました。
TJpegImageクラスにこの様な命令があるとは知りませんでした。
色々とお手数をおかけしまして申し訳ありませんでした。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加