「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;