图片如何保持原始比例大小?代码如下

liuchunshanyj 2008-09-08 07:55:24
string fullFileName=this.File1.PostedFile.FileName;
string FileName=fullFileName.Substring(fullFileName.LastIndexOf("\\")+1);
string type=fullFileName.Substring(fullFileName.LastIndexOf(".")+1);
if(type=="JPG"||type=="bmp"||type=="gif")
{
this.File1.PostedFile.SaveAs(Server.MapPath("up")+"\\"+FileName);
this.Image1.ImageUrl="up/"+FileName;
}
else
{
Response.Write("<script language='javascript'>alert('不识别的图像格式!');</script>");
}

这样上传照片后。照片的比例就变为 提供的image控件的长宽比例了,不好看。怎么才能让照片保持原始比例大小? 求助!!3Q
...全文
1141 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuchunshanyj 2008-09-09
  • 打赏
  • 举报
回复
有点头绪啦!
我做的是 asp.net c# web应用程序项目
用在我的程序里么
liuchunshanyj 2008-09-09
  • 打赏
  • 举报
回复
还有 function SetSize(img, width, height)
里面的img width height 各是什么?
研究ing....
hecong875 2008-09-09
  • 打赏
  • 举报
回复
关注下!!!
liuchunshanyj 2008-09-09
  • 打赏
  • 举报
回复
还有function SetSize(img, width, height)
这里的width跟 heigt 是什么?
liuchunshanyj 2008-09-09
  • 打赏
  • 举报
回复
function SetSize(img, width, height)
{
var vWidth=img.width;
var vHeight=img.height;
img.width=0;
img.height=0;
if(vWidth>vHeight){
img.width=width;
img.height=vHeight/vWidth*width;
img.style.marginTop=(height-img.height)/2;
}else if(vWidth<vHeight){
img.height=height;
img.width=vWidth/vHeight*height;
img.style.marginTop=0;
}else{
img.width=width;
img.height=height;
img.style.marginTop=0;
}
}

<img src='http://Img.hengzhe.com/sj/test.jpg' onload='SetSize(this, 100, 100)' border=0 />

看不大懂。。里面的img 是指image控件 还是 上传的图片?
还有if(vWidth>vHeight){
img.width=width;
img.height=vHeight/vWidth*width;
img.style.marginTop=(height-img.height)/2;
}else if(vWidth<vHeight){
img.height=height;
img.width=vWidth/vHeight*height;
img.style.marginTop=0;
}else{
img.width=width;
img.height=height;
img.style.marginTop=0;
}
这些代码可以给稍微加点注释么? 就是为了保持比例的?
谢谢大家!!!


liuchunshanyj 2008-09-09
  • 打赏
  • 举报
回复
嗯 我试试!
MicroDeviser 2008-09-08
  • 打赏
  • 举报
回复
把img宽和高去掉
accomp 2008-09-08
  • 打赏
  • 举报
回复
判断图片长宽比例,如比你的image大,则只指定长度,如小,则只指定宽度 。
牙签是竹子的 2008-09-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 liuchunshanyj 的回复:]
嗯 对啊 实际大小是不变。
就是问一下 浏览器中显示的大小能控制在原始比例么??
[/Quote]
可以,你在显示的时候,只指定image控件的长度,或者只指定它的高度,这样就可以了。
greenery 2008-09-08
  • 打赏
  • 举报
回复
就是在客户端调整一下就好了。
[Quote=引用 4 楼 wangkun9999 的回复:]
这个一般在客户端用js控制图片按比例缩放(照片保持原始会撑大页面):
HTML code//JS按比例缩放图片
function SetSize(img, width, height)
{
var vWidth=img.width;
var vHeight=img.height;
img.width=0;
img.height=0;
if(vWidth>vHeight){
img.width=width;
img.height=vHeight/vWidth*width;
img.style.marginTop=(height-img.height)/2;
}else if(vWidth<vHeight){

[/Quote]


如果你想更加完美,那么可以先按照预定义大小,将图片生成一套缩略图。在浏览时显示的只是缩略图,点击时打开原图。这样可以加快平时浏览速度,同时也减少流量(并不是每个人都要看原图,但是按上面的方式,浏览器还是会将图片完整下载回来,再缩小显示的)。
Adechen 2008-09-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 eyu777 的回复:]
只是显示的时候大小成了image的宽高,实际图片大小是不变的,你可以在上传文件里面打开看看
[/Quote]
lfywy 2008-09-08
  • 打赏
  • 举报
回复
4楼的不错!测试过
liuchunshanyj 2008-09-08
  • 打赏
  • 举报
回复
嗯 对啊 实际大小是不变。
就是问一下 浏览器中显示的大小能控制在原始比例么??
牙签是竹子的 2008-09-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 eyu777 的回复:]
只是显示的时候大小成了image的宽高,实际图片大小是不变的,你可以在上传文件里面打开看看
[/Quote]
wangkun9999 2008-09-08
  • 打赏
  • 举报
回复
这个一般在客户端用js控制图片按比例缩放(照片保持原始会撑大页面):

//JS按比例缩放图片
function SetSize(img, width, height)
{
var vWidth=img.width;
var vHeight=img.height;
img.width=0;
img.height=0;
if(vWidth>vHeight){
img.width=width;
img.height=vHeight/vWidth*width;
img.style.marginTop=(height-img.height)/2;
}else if(vWidth<vHeight){
img.height=height;
img.width=vWidth/vHeight*height;
img.style.marginTop=0;
}else{
img.width=width;
img.height=height;
img.style.marginTop=0;
}
}

<img src='http://Img.hengzhe.com/sj/test.jpg' onload='SetSize(this, 100, 100)' border=0 />
伊羽 2008-09-08
  • 打赏
  • 举报
回复
只是显示的时候大小成了image的宽高,实际图片大小是不变的,你可以在上传文件里面打开看看
rainxiang 2008-09-08
  • 打赏
  • 举报
回复
应该不可能吧。是否你在前台展示图片的时候设置了image的宽高?
bhtfg538 2008-09-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wangkun9999 的回复:]
这个一般在客户端用js控制图片按比例缩放(照片保持原始会撑大页面):
HTML code

//JS按比例缩放图片
function SetSize(img, width, height)
{
var vWidth=img.width;
var vHeight=img.height;
img.width=0;
img.height=0;
if(vWidth>vHeight){
img.width=width;
img.height=vHeight/vWidth*width;
img.style.marginTop=(height-img.height)/2;
}else if(vWidth<vHeight){

[/Quote]

这个不错 。不过有个缺点就是 图片大小不变
其实可以考虑 上传的图片时候生成一个略缩图
gdi+ 应该可以搞定的的
okwei1117 2008-09-08
  • 打赏
  • 举报
回复
帮顶。。。

62,252

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧