处理用户上传图片大小不一,前台显示的问题:

function imgonLoad()...{
var w = this.width;
var h = this.height;
var i = this.i;
//alert(w+'=='+h+'====='+i);
if(125*h/w>130)...{
document.getElementById('pic'+i).height=130;
document.getElementById('pic'+i).width=125*w/h;
}
}

function imgLoad(index,path)...{
try...{
var imgT = new Image();
imgT.i=index;
imgT.onload = imgonLoad;
imgT.src = path;
}catch(e)...{
}
}
给每个图片设置,onload属性,
<tr>
<td align="center" valign="middle" height="139" background="../images/festival/bar_01.gif" class="festival_pic"><a href="#" onClick="MM_openBrWindow('<%=root%>/springart/ArtWorkAction.do?method=doViewDetailIndexShow&imageFileId=<%=vo.getImageFileId() %>&isAddHitRate=true&relationPk=<%=vo.getContentId() %>&tableName=content','作品瀏覽','scrollbars=yes,width=720,height=400')" ><img id="pic0" src='<%=request.getContextPath()+gov.cca.ccasp.frontsite.common.helper.ImagePathHelper.getImageURL(vo.getImageUrl(),"small") %>' onerror="showDefaultListImage(this)" width="125" border="0" ></a></td>
<script>...
imgLoad(0,'<%=request.getContextPath()+ImagePathHelper.getImageURL(vo.getImageUrl(),"small") %>');
</script>
</tr>
参考:
var img = new image();
img.src=src;
img.onload = function()...{
document.getElementById('img').src = img.src;
}

function draw() ...{
var ctx = document.getElementById('canvas').getContext('2d');
var img = new Image();
img.src = 'images/rhino.jpg';
img.onload = function()...{
for (i=0;i<4;i++)...{
for (j=0;j<3;j++)...{
ctx.drawImage(img,j*50,i*38,50,38);
}
}
}
}
针对用户上传图片尺寸不一致导致的前端显示问题,解决方案是在每个图片元素上设置onload属性,确保图片加载完成后进行适当处理。
450

被折叠的 条评论
为什么被折叠?



