Jpg圧縮画像をImage1に転送するには

解決


yotuba  2003-07-05 23:47:48  No: 4022  IP: [192.*.*.*]

BMP→JPGに変換する際にJpgに圧縮をかけたいのですが
ファイルとして保存されたものには反映されているのに
Image1に転送したものには全く反映されません。
転送イメージにも反映させる方法はありませんか?
よろしければご返答お願いします。

var
Jpg : TJpegImage;
BMP : TBitMap ;

Jpg :=TJpegImage.Create;
BMP :=TBitmap.Create;

BMP.LoadFromFile('d:\test.bmp');

Jpg.Assign(BMP);
Jpg.CompressionQuality :=10;

Image1.Picture.Assign(Jpg);
Jpg.SaveToFile('d:\test.jpg');

BMP.Free;
Jpg.Free;

編集    削除
にしの  2003-07-06 02:31:14  No: 4023  IP: [192.*.*.*]

CompressionQualityはファイルに対する圧縮率だと思います。
画像を劣化させるためのものではありませんので、正常な動作と思います。
もし必要であれば、再度圧縮したファイルを読み込み直せばよろしいかと思います。

編集    削除
yotuba  2003-07-06 02:48:53  No: 4024  IP: [192.*.*.*]

にしのさん早速のご返事ありがとうございます。

これを簡単に内部で処理してしまうのはムリなのでしょうか?
例えばレタッチ系ソフトの様に圧縮率と画像状況を
リアルタイムに見るようなカンジがほしいのですが...。

編集    削除
にしの  2003-07-06 07:06:10  No: 4025  IP: [192.*.*.*]

SaveToStreamして、LoadFromStreamすればよろしいのでは?
試していないので、ちゃんとできるかわかりませんが。

編集    削除
yotuba  2003-07-06 21:12:57  No: 4026  IP: [192.*.*.*]

TMemoryStreamでなんとかうまく機能しました。
にしのさん何度もありがとうございました。
これからもよろしくおねがいします。

編集    削除