掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
透明ありの PNGファイルの解像度を変更する方法 (ID:151624)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
透明色ありの PNGファイルの解像度を変更する処理を作りたいのですが 普通に作ると情報が失われます そこでTPngImageクラスを使って作ってみたのですが思うような結果にはなりません TPngImageクラスを使うのが間違いなのでしょうか? サンプル unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,PNGImage, Vcl.StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var pngf,pngt : TPngImage; begin pngf := TPngImage.Create; pngt := TPngImage.Create; try pngf.LoadFromFile('sample.png'); pngt.Assign(pngf); pngt.SetSize(100,100); pngt.Canvas.Brush.Style := bsSolid; pngt.Canvas.Brush.Color := pngf.TransparentColor; pngt.Canvas.FillRect(Rect(0,0,100,100)); pngt.Canvas.StretchDraw(Rect(0,0,100,100),pngf); pngt.SaveToFile('sample2.png'); finally pngt.Free; pngf.Free; end; end; end. DelphiXE5、Delphi12.1 VCL Windows10
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.