TBitpmap画像ファイルからJPEG,PNG,GIF,TIFFファイルに変換(FMX) ~Delphiソースコード集
TBimtmapからJPG,PNG,GIF,TIFFファイルを保存するにはSaveToFileメソッドで保存時の拡張子を指定すれば拡張子から自動的に形式を判断して保存してくれます。
jpg保存時に品質(圧縮率)を指定する場合にはTBitmapCodecSaveParamsを使用します。
unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { private 宣言 } public { public 宣言 } end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.Button1Click(Sender: TObject); var bmp:TBitmap; SaveParam:TBitmapCodecSaveParams; begin bmp:=TBitmap.Create; try bmp.width:=64; bmp.Height:=64; //Bitmapを塗ったり線を引いたりする bmp.Canvas.BeginScene(); bmp.Canvas.Fill.Color:=TAlphaColorRec.White; bmp.Canvas.FillRect(RectF(0,0,bmp.Width,bmp.Height),0,0,[],1); bmp.Canvas.Fill.Color:=TAlphaColorRec.Red; bmp.Canvas.FillRect(RectF(10,10,20,20),0,0,[],1); bmp.Canvas.Stroke.Color:=TAlphaColorRec.Black; bmp.Canvas.DrawLine(PointF(4,4),PointF(60,60),1); bmp.Canvas.EndScene; //bmpで保存 bmp.SaveToFile('a.bmp'); //jpgで保存(品質無指定) bmp.SaveToFile('a.jpg'); //jpgで保存(品質指定) SaveParam.Quality:=20;//品質を20に設定(低:0~高:100) bmp.SaveToFile('a20.jpg', @SaveParam); //pngで保存 bmp.SaveToFile('a.png'); //gifで保存 bmp.SaveToFile('a.gif'); //tiffで保存 bmp.SaveToFile('a.tif'); finally bmp.Free; end; end; end.