2009-08-11 57 views
3

TImageで表示される画像の現在のサイズを取得したい場合、このオブジェクトはProportionalプロパティがTrueに設定され、メインフォームでClientにアライメントされます。したがって、フォームのサイズを変更するときに、そのイメージの現在のサイズを取得したいと思います。キャンバスサイズはそのイメージの実サイズではありません。現在のサイズを取得する実際の画像サイズに対する現在の画像サイズのパーセンテージを表示できます。 ありがとうございますDelphi 2009で画像の現在の表示サイズを取得する方法

答えて

1

Image1.Picture.Widthまたは.HeightとImage1.Widthまたは.Heightを比較できます。

画像を水平または垂直方向の寸法を使用して比例随分されている場合、あなたは比率の2のを比較する必要があります知っている:

乗算に部門を変換するために、数学的なトリックを使用して
if Image1.Width/Image1.Height > Image1.Picture.Width/Image1.Picture.Height then 
    Result:=Image1.Picture.Width/Image1.Width 
else 
    Result:=Image1.Picture.Height/Image1.Height; 

、あなたは避けることができます浮動小数点値への変換は、以下を使用して少し速く計算されます。

if Image1.Width*Image1.Picture.Height >Image1.Picture.Width*Image1.Height then 
4

私はそこに組み込みの方法がないとは思いません。あなたはそれを計算しなければならないかもしれません。このようなもの:

  1. キャンバスの高さと幅を取得します。
  2. 画像のPictureプロパティの高さと幅を取得します。
  3. キャンバスの寸法に対するピクチャの寸法の比率を計算します。
  4. 2つの比率のどちらか小さい方があなたの割合です。
+0

Drat!私はこの3つのキーストロークと1回のクリックでこの同じ回答を投稿しました!あなたは早すぎる、メイソン。

0

この画像を仮想TCanvas(または何でも)にロードして、ProportionalプロパティをFalseのままにします。これで、画像の元のサイズを取得できます。イメージが通常非常に大きい場合、おそらくいくつかの外部グラフィックライブラリを使用する必要があります。

関連する問題