トップへ(mam-mam.net/)

FMXのTImageのBitmapプロパティ内の画像をjepgのストリームとして取り出すには

検索:

「FMXのTImageのBitmapプロパティ内の画像をjepgのストリームとして取り出すには」

FMXのTImageのBitmapプロパティ内の画像をjpgのストリームとして取り出したい。
またそのときの圧縮品質を指定してファイルに保存したい。

回答

uses に FMX.Surfaces を追加します。
以下のサンプルソースはImage1のbitmapをjpgで品質100でストリームに保存し、ファイルに保存します。

ソース

procedure TForm1.Button1Click(Sender: TObject);
var strm :TMemoryStream;
    bmps:TBitmapSurface;
    pm   :TBitmapCodecSaveParams;
begin
  bmps := TBitmapSurface.Create;
  strm:=TMemoryStream.Create;
  try
    //品質100で保存(0-100)
    pm.Quality:=100;
    bmps.Assign(Image1.Bitmap);
    TBitmapCodecManager.SaveToStream(strm,bmps,'.jpg',@pm);
    strm.SaveToFile('D:\a.jpg');
  finally
    bmps.Free;
    strm.Free;
  end;
end;