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

解決


yotuba  2003-07-05 23:47:48  No: 4022

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

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


yotuba  2003-07-06 02:48:53  No: 4024

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

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


にしの  2003-07-06 07:06:10  No: 4025

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


yotuba  2003-07-06 21:12:57  No: 4026

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


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

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






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