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;
CompressionQualityはファイルに対する圧縮率だと思います。
画像を劣化させるためのものではありませんので、正常な動作と思います。
もし必要であれば、再度圧縮したファイルを読み込み直せばよろしいかと思います。
にしのさん早速のご返事ありがとうございます。
これを簡単に内部で処理してしまうのはムリなのでしょうか?
例えばレタッチ系ソフトの様に圧縮率と画像状況を
リアルタイムに見るようなカンジがほしいのですが...。
SaveToStreamして、LoadFromStreamすればよろしいのでは?
試していないので、ちゃんとできるかわかりませんが。
TMemoryStreamでなんとかうまく機能しました。
にしのさん何度もありがとうございました。
これからもよろしくおねがいします。
ツイート | ![]() |