如何通过代码访问图像的大小信息

时间:2016-10-19 21:31:42

标签: image delphi firemonkey delphi-10.1-berlin

我正在使用Delphi 10.1 Berlin,我需要创建一个图像并将其Canvas大小设置为等于位图大小。更具体地说,我想访问此属性:enter image description here

在哪里说:“按图像大小”。但我无法弄清楚如何获取此信息,请帮忙! :-D

编辑:这是我正在使用的代码,如果你们需要更好地理解我想要实现的目标:

imgProdutoZoom := TImage.Create(rtFundoArredondadoZoom);
imgProdutoZoom.Parent := rtFundoArredondadoZoom;
imgProdutoZoom.Align := TAlignLayout.Client;
imgProdutoZoom.Bitmap.Assign(imgProduto.Bitmap);
imgProdutoZoom.WrapMode := TImageWrapMode.Fit;
imgProdutoZoom.Name := 'imgZoom'+ IntToStr(i);

我找到了这段代码:imgProdutoZoom.MultiResBitmap.SizeKind.Source; 但控制台给我一个错误:'[dcc32 Error] MainFrm.pas(628):E2018需要记录,对象或类类型'

1 个答案:

答案 0 :(得分:3)

您没有显示Expected type 'int', got 'float' 是什么,但我认为它是rtFundoArredondadoZoom

设置

TRectangle

您告诉填写父母区域(imgProdutoZoom.Parent := rtFundoArredondadoZoom; imgProdutoZoom.Align := TAlignLayout.Client; )。但是,由于rtFundoArredondadoZoom默认为TImage.WrapMode,因此图片会保留其宽高比,并且不会拉伸以填充父级。

现在,您设置的限制因素是TImageWrapMode.Fit矩形,特别是它的高度。要以完整尺寸显示图像,您需要设置

rtFundoArredondadoZoom

您有时也可能想要设置矩形的宽度。

下图显示了左侧原始尺寸的图像,以及基本上使用代码的高度较小的矩形上的相同图像

enter image description here

然后在矩形上应用高度设置

enter image description here

相应地更正了您的代码:

rtFundoArredondadoZoom.Height := imgProdutoZoom.Bitmap.Height;