用js可以輕易解決這個問題.把以下文件保存成x.js
function ResizeImage(objImage,maxWidth) { try{ if(maxWidth>0){ var objImg = $(objImage); if(objImg.width()>maxWidth){ objImg.width(maxWidth).css("cursor","pointer").click(function(){ try{showModelessDialog(objImage.src);}catch(e){window.open(objImage.src);} }); } } }catch(e){}; }
function ResizeImage(objImage, maxHeight) { //該方法是定義一個高度,即固定高度 try { if (maxHeight > 0) { var objImg = $(objImage); if (objImg.height() > maxHeight) { objImg.height(maxHeight).css("cursor", "pointer").click(function () { try { showModelessDialog(objImage.src); } catch (e) { window.open(objImage.src); } }); } } } catch (e) { }; }
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>最新javascript自動按比例顯示圖片,按比例壓縮圖片顯示</title> <script type="text/javascript"> function AutoResizeImage(maxWidth,maxHeight,objImg){ var img = new Image(); img.src = objImg.src; var hRatio; var wRatio; var Ratio = 1; var w = img.width; var h = img.height; wRatio = maxWidth / w; hRatio = maxHeight / h; if (maxWidth ==0 && maxHeight==0){ Ratio = 1; }else if (maxWidth==0){// if (hRatio<1) Ratio = hRatio; }else if (maxHeight==0){ if (wRatio<1) Ratio = wRatio; }else if (wRatio<1 || hRatio<1){ Ratio = (wRatio<=hRatio?wRatio:hRatio); } if (Ratio<1){ w = w * Ratio; h = h * Ratio; } objImg.height = h; objImg.width = w; } </script> </head> <body> <br /> 原圖顯示(534 X 800)<br /> onload="AutoResizeImage(0,0,this)<br /> <a target="_blank"><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/feng_sundy/421506/o_09925c7bcead8c60f683298dacf497a6.jpg" border="0" width="0" height="0" onload="AutoResizeImage(0,0,this)" alt="534 X 800"/></a><br/><br /> .按寬度250壓縮,不限制高度 按比例壓縮<br /> onload="AutoResizeImage(250,0,this)"<br /> <a target="_blank"><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/feng_sundy/421506/o_09925c7bcead8c60f683298dacf497a6.jpg" border="0" width="0" height="0" onload="AutoResizeImage(250,0,this)" alt="250 X 374"/></a><br /><br /> .按高度250壓縮,不限制寬度 按比例壓縮<br /> onload="AutoResizeImage(0,250,this)"<br /> <a target="_blank"><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/feng_sundy/421506/o_09925c7bcead8c60f683298dacf497a6.jpg" border="0" width="0" height="0" onload="AutoResizeImage(0,250,this)" alt="166 X 250"/></a><br /><br /> .按高度250寬度250 按比例壓縮<br /> onload="AutoResizeImage(250,250,this)"<br /> <a target="_blank"><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/feng_sundy/421506/o_09925c7bcead8c60f683298dacf497a6.jpg" border="0" width="0" height="0" onload="AutoResizeImage(250,250,this)" alt="200 X 300"/></a><br /><br /> .高寬不等比例壓縮 (400 X 512),此時高度不變,會自動按高度的比例壓縮。<br /> onload="AutoResizeImage(400,512,this)"<br /> <a target="_blank"><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/feng_sundy/421506/o_09925c7bcead8c60f683298dacf497a6.jpg" border="0" width="0" height="0" onload="AutoResizeImage(400,512,this)" alt="341 X 512"/></a><br /><br /> .高寬不等比例壓縮 (300 X 600),此時寬度不變,會自動按寬度的比例壓縮。<br /> onload="AutoResizeImage(300,600,this)"<br /> <a target="_blank"><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/feng_sundy/421506/o_09925c7bcead8c60f683298dacf497a6.jpg" border="0" width="0" height="0" onload="AutoResizeImage(300,600,this)" alt="300 X 449"/></a><br /><br /> .如果圖片本來的高度和寬度小于壓縮的最大高度和寬度,則不會拉大顯示圖片(按原圖顯示)<br /> 原圖444 x 207,壓縮為 500 x 600,將保持原圖顯示<br /> onload="AutoResizeImage(500,600,this)"<br /> <a target="_blank"><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/feng_sundy/242776/o_20070410_b7409cd284a0f799a357uePcEFa6ty0X.jpg" border="0" width="0" height="0" onload="AutoResizeImage(500,600,this)" alt="444 X 207"/></a><br /><br /> </body> </html>