2016-10-19 10 views
-1

私はDelphi 10.1 Berlinを使用しています。画像を作成し、そのキャンバスサイズをビットマップサイズと同じにする必要があります。具体的には、私はこのプロパティにアクセスしたいと思っています:enter image description hereコードによる画像のアクセスサイズ情報

「画像によってサイズ設定されました」。しかし、私はどのように私はこれにアクセスすることができます把握することはできません、助けてください! :-D

EDIT:あなたたちは私が達成しようとしているものをよりよく理解する必要がある場合、これは、私が使用しているコードです:

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エラー] MainFrm.pas(628):E2018レコード、オブジェクトまたはクラスの種類が必要です'

+0

質問が正しいかどうかわかりません。しかし、元の解像度はimgProducto.Bitmap.HeightとimgProducto.Bitmap.Widthであってはいけません。それはあなたが探しているものですか? –

+0

私はこのプロパティ "画像で把握"にアクセスしたいだけです。私はイメージの高さと幅を望ましくない –

+0

私は間違っているかもしれないが、それは財産だとは思わない。 TImageのサイズを元のソースのサイズに正確に設定するには、次のようにします。imgProdutoZoom.Height:= imgProduto.Bitmap.Height; imgProductoZoom.Width:= imgProduto.Bitmap.Width; –

答えて

3

rtFundoArredondadoZoomは表示されませんでしたが、それはTRectangleと見なされます。

あなたは

imgProdutoZoom.Parent := rtFundoArredondadoZoom; 
imgProdutoZoom.Align := TAlignLayout.Client; 

を設定するときは、親(rtFundoArredondadoZoom)のエリアを埋めるに語っています。ただし、TImage.WrapModeはデフォルトでTImageWrapMode.Fitであるため、画像はアスペクト比を保持し、親を満たすために伸縮しません。

設定の制限要因は、rtFundoArredondadoZoomの矩形、具体的にはその高さです。画像をフルサイズで表示するには、設定する必要があります

rtFundoArredondadoZoom.Height := imgProdutoZoom.Bitmap.Height; 

場合によっては、矩形の幅を設定することもできます。

次の画像が矩形に設定高さを適用した後、そして基本的に、コード

enter image description here

を用いてより小さな高さを有する矩形の左に元のサイズの画像を示し、TE同じ画像

enter image description here

に応じて修正さあなたのコードは次のようになります。

imgProdutoZoom := TImage.Create(rtFundoArredondadoZoom); 
imgProdutoZoom.Parent := rtFundoArredondadoZoom; 
imgProdutoZoom.Align := TAlignLayout.Client; 
imgProdutoZoom.Bitmap.Assign(imgProduto.Bitmap); 
// imgProdutoZoom.WrapMode := TImageWrapMode.Fit; // not needed 
rtFundoArredondadoZoom.Height := imgProdutoZoom.Bitmap.Height; // add this 
imgProdutoZoom.Name := 'imgZoom'+ IntToStr(i); 
関連する問題