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

TBitpmap画像ファイルからJPEG,PNG,GIF,TIFFファイルに変換(FMX) ~Delphiソースコード集

検索:

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.