XE5 では、TImage を使用して、ビットマップをプロポーショナル ディメンションで引き伸ばすにはどうすればよいですか? TImage の幅は 200 ピクセル、高さは 300 ピクセルです。ビットマップの幅は 130、高さは 80 です。Image1.WrapMode を iwStretch に設定すると、ビットマップは TImage の領域に合わせてサイズ変更されますが、TImage のスケール比率ではなく、ビットマップが「太すぎ」て表示されます。
どうもありがとう。
XE5 では、TImage を使用して、ビットマップをプロポーショナル ディメンションで引き伸ばすにはどうすればよいですか? TImage の幅は 200 ピクセル、高さは 300 ピクセルです。ビットマップの幅は 130、高さは 80 です。Image1.WrapMode を iwStretch に設定すると、ビットマップは TImage の領域に合わせてサイズ変更されますが、TImage のスケール比率ではなく、ビットマップが「太すぎ」て表示されます。
どうもありがとう。
比率を維持するには、「スケール」プロパティを使用できます。たとえば、フォームの img (TImage) に画像をロードし、拡大縮小するボタンを使用して、次の操作を実行できます。
procedure THeaderFooterForm.Button5Click(Sender: TObject);
var testScale : Single;
begin
img.WrapMode := TImageWrapMode.iwOriginal;
testScale := img.Width / img.Bitmap.Width;
if (img.Height / img.Bitmap.Height) < testScale then
testScale := img.Height / img.Bitmap.Height;
img.Scale.X := testScale;
img.Scale.Y := testScale;
end;