大きな画像を幅 150 ピクセルにサイズ変更したいのですが、高さは固定されます。次に、画像を私のウェブサイトのフォルダーに保存します。
例: (幅,高さ) 画像のサイズを 300px*300px に変更すると、150px*150px のサイズに変更された画像が得られます。画像のサイズを 450px*300px に変更すると、サイズが 150px*100px の画像になります。
ポイントは、幅と高さの比率が常に 150 ピクセルの幅を維持して保存されることです。
ヘルプはありますか?
私はこれを見つけました(私のものではありません)here
private Bitmap ScaleImage(Image oldImage)
{
double resizeFactor = 1;
if (oldImage.Width > 150 || oldImage.Height > 150)
{
double widthFactor = Convert.ToDouble(oldImage.Width) / 150;
double heightFactor = Convert.ToDouble(oldImage.Height) / 150;
resizeFactor = Math.Max(widthFactor, heightFactor);
}
int width = Convert.ToInt32(oldImage.Width / resizeFactor);
int height = Convert.ToInt32(oldImage.Height / resizeFactor);
Bitmap newImage = new Bitmap(width, height);
Graphics g = Graphics.FromImage(newImage);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.DrawImage(oldImage, 0, 0, newImage.Width, newImage.Height);
return newImage;
}
これは、スタイルシートで実現できます。まず、次のスタイルを定義します。
.thumb {
max-width: 150px;
max-height: 150px;
width: expression(this.width > 150 ? "150px" : true);
height: expression(this.height > 150 ? "150px" : true);
}
次に、次のように、このスタイルをイメージ タグに追加します。
<img class="thumb" ...>
今回は高さと幅の要素を含めないでください。
そのスタイルの前半は、max-width および max-height プロパティをサポートするブラウザー (Chrome、Firefox、Opera、および Safari) 用です。後半は IE のハックですが、そうではありません。
ここに例があります:jsFiddle