2011-11-18 11 views
1

これは本当に単純な比率の計算だとわかっていますが、私は目立たずに画面を見つめているので、本当にブーストに感謝します。ズームしたビットマップの寸法を計算するにはどうすればよいですか?

写真が小さく表示されるウィンドウに収縮しています。使いやすさのため、私の写真は1000x1000で、ウィンドウは500x500です。

写真が完全に表示されているときは、0.5スケールです。

ユーザーがズームすると、縮尺が変わります。ある時点で、ユーザはウィンドウ内にある画像のセクションを収集したいと思う。ユーザーがそれを100%に増やした場合、500ピクセルが表示されます(また、500ピクセルは画面外であり、不要です)。

ウィンドウに表示される内容に応じて、ユーザーが取得しようとしている相対ピクセル数を計算する式が必要です。

紛らわしいことは、イメージが大きくなると、私は望むつもりであるということです(その最小サイズは1000ピクセルですが、大きくなると大きくなり、ますます外に出るほどですウィンドウ、私はより少なく、より少ないピクセルが必要になります)。

TIA

答えて

2

あなたはdisplayWidthが表示領域の幅で、スケールはあなたの例では0.5のように、画像の拡大縮小であるdisplayWidth/scaleピクセルをつかむことになるでしょう。画像と表示領域の幅と高さが異なる可能性があるため、両方の寸法(幅と高さ)でこの計算を実行する必要があります。

また、画像の幅(または高さ)がdisplayWidth/scaleより小さい場合は、代わりに画像の幅にすることができます。

+0

ありがとう!それはうまくいくように見えます。 –

0

ので、画像は元の規模にあるときに1/2ピクセルをしたいとあなたは、画素の1/4 ....

(picSize/zoomFactor) * 0.5

をお勧めしますその2倍の方が大きい場合0.5これはあなたが使用した図形だからですが、比率displaySize/picSizeに置き換える必要があります

+0

これは、表示領域が画像のサイズのちょうど半分の場合にのみ機能します。したがって、ロードされたイメージに非常に依存します。 – vidstige

+0

これはOPが使用した数字です。私は例として使っただけです – yurib

関連する問題