Mam's WebSite
建築CGパース住宅CGパース

Mamの覚書Q&A検索

トップページMamの覚書Q&A検索Delphi(FireMonkey(FMX))⇒Q&A


大項目:「 Delphi 」 - 中項目:「 FireMonkey(FMX) 」

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

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


回答

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

ソース

procedure TForm1.Button1Click(Sender: TObject);
var strm :TMemoryStream;
    bmpss: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;


Mam's WebSite