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.
