掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TPaintBoxで図形を拡大/縮小表示するには (ID:29623)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>中身(描画した図形)だけを拡大/縮小したいのです。 できますよ。 TImage は、内部に抱えた画像をウィンドウズから受け取る描画命令に自動的に同期して 表示するクラスです。TImage のサイズと内部の画像のサイズは独立していますから TImage のサイズに関係なく、画像を任意のサイズに変更できます。 Jpeg 画像をロードして、その縦横を0.6倍する例を示します。 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtDlgs, ExtCtrls; type TForm1 = class(TForm) Image1: TImage; OpenPictureDialog1: TOpenPictureDialog; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} uses Jpeg; procedure TForm1.Button1Click(Sender: TObject); var jpg: TJpegImage; begin if OpenPictureDialog1.Execute then begin jpg := TJpegImage.Create; try jpg.LoadFromFile(OpenPictureDialog1.FileName); Image1.Picture.Bitmap.Assign(jpg); finally jpg.Free; end; end; end; procedure TForm1.Button2Click(Sender: TObject); var bmp:TBitmap; begin if Assigned(Image1.Picture.Bitmap) then begin bmp := TBitmap.Create; try bmp.Assign(Image1.Picture.Bitmap); bmp.Width := Round(Image1.Picture.Bitmap.Width * 0.6); bmp.Height := Round(Image1.Picture.Bitmap.Height * 0.6); bmp.Canvas.StretchDraw(Rect(0, 0, bmp.Width, bmp.Height),Image1.Picture.Bitmap); Image1.Picture.Bitmap.Assign(bmp); finally bmp.Free; end; end; end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.