誰もこの問題についての光を放つことはできますか?Imageサイズ変更の計算 - 何が起こっていますか?
ASP.NET 4.0/C#
コード:
Image image = Image.FromStream(Request.Files[0].InputStream);
var newWidth = 150;
var current = image.Width;
double scaleHeight = (150/current);
if (scaleHeight == 0)
{
scaleHeight = 0.2;
}
var newHeight = Convert.ToInt32(image.Height * scaleHeight);
var thumbnailBitmap = new Bitmap(newWidth, newHeight);
Graphics thumbnailGraph = Graphics.FromImage(thumbnailBitmap);
このコードは常に0.2としてScaleHeightの値を設定し、上記。奇妙なことにimage.Widthはイメージの正しい幅を参照しているので、論理的に150/xはxの小数点以下のパーセンテージを与えるはずですが、そのパーセンテージ(高さ*結果)に基づいて新しい高さを試すことができます。私はそれが数学だと思う! hehe。
例:150/1024 == 0.1464。次に768 * 0.1464 == 112(int) - 768の14%は約112です。これはコード内では動作しません。
私は明らかにここで何か愚かに間違っているんだ、誰もこれにどのような光を当てることができますか?
不審な質問にお答えします。助けてくれてありがとう!
Chris。
優秀、ありがとうございましたEd - 完璧に働いた。 –
+1は 'var'の過度の使用に対する警告です。 – 5arx