上传图片等比例缩放问题

mebboyrui 2011-12-04 01:02:48
上传图片并保存缩小后的图片,但是不保存原图能实现吗?
public bool ThumbnailCallback()
{

return false;

}
private void SaveImage(string filePath)
{
string fileName = Path.GetExtension(upLoad.PostedFile.FileName).ToLower();
string _filename = DateTime.Now.ToString("yyMMddHHmmss");

System.Drawing.Image image = null, aNewImage = null;

//下面是生成缩略图
int newwidth = 0, newheight = 0;
image = System.Drawing.Image.FromFile(filePath);
System.Drawing.Image.GetThumbnailImageAbort callb = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);

//取高和宽
int phWidth = image.Width;
int phHeight = image.Height;

//设置缩略的宽度和高度
if (phWidth > 110)
{
//指定宽度
newwidth = 110;
//根据宽度算出高度
newheight = phHeight * newwidth / phWidth;
}
aNewImage = image.GetThumbnailImage(newwidth, newheight, callb, new System.IntPtr());
//将缩略图重新命名并保存
aNewImage.Save(Server.MapPath("~/files/file/") + DateTime.Now.ToString("yyMMddHHmmss") + fileName);
image.Dispose();
}

SaveImage(string filePath)里面的filePath可不可以用上传空间里面得到的upLoad.PostedFile.FileName值?
难道只能用服务器端的路径?
...全文
229 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
andyalex 2011-12-10
  • 打赏
  • 举报
回复
上传的时候,你先保存到图片里嘛,
楼上两位说的很清楚了
orain 2011-12-10
  • 打赏
  • 举报
回复

private static System.Drawing.Bitmap ResizeImage(System.IO.Stream fileStream)
{
int maxW = Information.ReportPhotoMaxWidth;
int maxH = Information.ReportPhotoMaxHeight;
System.Drawing.Bitmap img = new System.Drawing.Bitmap(fileStream);
int w = img.Width;
int h = img.Height;
bool flag = false;
if (w > maxW)
{
flag = true;
h = maxW * h / w;
w = maxW;
}
if (h > maxH)
{
flag = true;
w = maxH * w / h;
h = maxH;
}

return flag ? new System.Drawing.Bitmap(img, w, h) : img;
}

调用方式
ResizeImage(HttpPostedFile.InputStream);
孟子E章 2011-12-10
  • 打赏
  • 举报
回复
image = System.Drawing.Image.FromFile(filePath);
改成

image = System.Drawing.Image.FromStream(new System.IO.MemoryStream(upLoad.FileBytes));

就可以了
孟子E章 2011-12-10
  • 打赏
  • 举报
回复
可以不用保存
thinkingthigh 2011-12-10
  • 打赏
  • 举报
回复
表示,客户端脚本貌似做不来。莫非只能上传大图生成小图后把大图删掉了╮(╯_╰)╭。
thinkingthigh 2011-12-10
  • 打赏
  • 举报
回复
遇到同样的问题,网上的方法大多数都是上传到服务器后,用服务器的物理路径再次生成缩略图。找了半天还是木有找到。正在考虑通过客户端脚本譬如js处理一下图片之后再上传。正在写,一起研究吧。

62,046

社区成员

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

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

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

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