Heim >Web-Frontend >js-Tutorial >JS-Methode zur Erzielung einer proportionalen Skalierung von Bildern (mit C#-Versionscode)_Javascript-Kenntnisse
Das Beispiel in diesem Artikel beschreibt die Methode zur proportionalen Skalierung von Bildern in JS. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
js-Version:
function resizeImage(obj, MaxW, MaxH) { var imageObject = obj; var state = imageObject.readyState; if(state!='complete') { setTimeout("resizeImage("+imageObject+","+MaxW+","+MaxH+")",50); return; } var oldImage = new Image(); oldImage.src = imageObject.src; var dW = oldImage.width; var dH = oldImage.height; if(dW>MaxW || dH>MaxH) { a = dW/MaxW; b = dH/MaxH; if( b>a ) a = b; dW = dW/a; dH = dH/a; } if(dW > 0 && dH > 0) { imageObject.width = dW; imageObject.height = dH; } }
Es ist sehr einfach zu verwenden: b09778e546d10c300160044727fe8042
Hinweis: Beim Skalieren in gleichen Proportionen kommt es zu einer Verwackelung. Sie legen zuerst die Breite und Höhe des img-Attributs fest. Auf diese Weise wird diese Größe beim Laden nie überschritten Wenn es ausgeführt wird, wird es an das von Ihnen angegebene Verhältnis angepasst und niemals auf ein sehr hohes Niveau erweitert.
Ebenfalls beigefügt ist die C#-Version
/// <summary> /// 按比例缩放图片 /// </summary> /// <param name="imgUrl">图片的路径</param> /// <param name="imgHeight">图片的高度</param> /// <param name="imgWidth">图片的宽度</param> /// <returns></returns> public static string GetImageSize(string imgUrl,int imgHeight,int imgWidth) { string fileName = System.Web.HttpContext.Current.Server.MapPath(imgUrl); string strResult = string.Empty; if(System.IO.File.Exists(fileName) && imgHeight != 0 && imgWidth != 0) { decimal desWidth;decimal desHeight;//目标宽高 System.Drawing.Image objImage = System.Drawing.Image.FromFile(fileName); decimal radioAct = (decimal)objImage.Width/(decimal)objImage.Height;//原始图片的宽高比 decimal radioLoc = (decimal)imgWidth/(decimal)imgHeight;//图片位的宽高比 if(radioAct > radioLoc)//原始图片比图片位宽 { decimal dcmZoom = (decimal)imgWidth/(decimal)objImage.Width; desHeight = objImage.Height*dcmZoom; desWidth = imgWidth; } else { decimal dcmZoom = (decimal)imgHeight/(decimal)objImage.Height; desWidth = objImage.Width*dcmZoom; desHeight = imgHeight; } objImage.Dispose(); //释放资源 strResult = "width=\"" + Convert.ToString((int)desWidth) + "\" height=\"" + Convert.ToString((int)desHeight) + "\" "; } return strResult; }