0

私が望むのは、サイズが 480k ピクセルを超える画像のサイズを 480k ピクセル以下に縮小することです。

-- maxSize = 480k
-- picture1.Size = 1600*300 = 480k = maxSize => that's OK.
-- picture2.Size = 2600*200 = 520k => problem (should be reduced to maxSize or less).

picture2.Size / maxSize = 1.083

picture2.Size/1.083 = 480148 (~= maxSize) => that's OK.

1.083 が画像のサイズ変更の比率であるとします。比率 = 1.083;

この比率を適用して画像の縦横比を維持するにはどうすればよいですか?

4

2 に答える 2

1

システムを解決したいだけです:

newWidth * newHeight = maxSize;
newWidth / newHeight = picture2.Width / picture2.Height

解決策は次のとおりです。

double newWidth = Math.Sqrt(picture2.Width * maxSize / picture2.Height);
double newHeight = Math.Sqrt(picture2.Height * maxSize / picture2.Width);

このようにして、の縦横比picture2が保持され、サイズが次の値を超えることはありませんmaxSize

于 2013-11-10T17:57:38.530 に答える
0

(2600-x)/(200-y) = 2600/200 および x*y = 1.083

これで、画像を maxSize 未満のサイズに再スケーリングでき、縦横比も同じままです。

于 2013-11-10T17:55:34.990 に答える