16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"TJPEGImageを利用した減色"
JPEGイメージを使った減色です。ファイルアクセスを行わないのでSaveToFile・
LoadFromFileを使った減色法よりも高速です。TImageとTButtonを各一つ配置し
て下さい。
procedure TForm1.Button1Click(Sender: TObject);
var
jpg : TJPEGImage;
bmp : TBitmap;
begin
jpg := TJPEGImage.Create;
bmp := TBitmap.Create;
try
Image1.Picture.LoadFromFile('Test.bmp');
//読み込んだビットマップがフルカラーでないと意味が無いので
if Image1.Picture.Bitmap.PixelFormat = pf24bit then
begin
jpg.Assign(Image1.Picture.Bitmap);
Image1.Picture.Assign(jpg);
jpg.Compress; //実行しないとエラーが発生する
TJPEGImage(Image1.Picture.Graphic).PixelFormat := jf8bit;
bmp.Assign(Image1.Picture.Graphic);
bmp.SaveToFile('8bit.bmp');
end;
finally
jpg.Free;
bmp.Free;
end;
end;
紅月 燐火(BZF05041)
Original document by 紅月 燐火 氏 ID:(BZF05041)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|