在图片上传中,我想使用不同的名称保存该图像的副本并调整尺寸。
[HttpPost]
public ActionResult Create(HttpPostedFileBase photo)
{
string path = System.Configuration.ConfigurationManager.AppSettings["propertyPhotoPath"].ToString();
if ((photo != null) && (photo.ContentLength > 0))
{
var fileName = Path.GetFileName(photo.FileName);
var pathToSaveOnHdd = Path.Combine(Server.MapPath(path), fileName);
string dbPhotoPath = string.Format("{0}{1}", path, fileName);
}
...
// to do: make image copy, change dimensions
}
答案 0 :(得分:2)
要复制文件,您可以使用File.Copy
方法。要调整图像大小,有许多技术,包括GDI +,WIC,WPF(这里是similar post
中的示例)或NuGet,例如ImageResizer
。
答案 1 :(得分:0)
您可以将上传的文件从ActionController转换为字节,并更改流的大小,如下所示
Byte [] image1 = new Byte [photo.ContentLength - 1]; HttpPostedFileBase file = photo.PostedFile; file.InputStream.Read(image1,0,file.ContentLength - 1); System.IO.MemoryStream ms = new System.IO.MemoryStream(image1);
您可以使用图形类重新绘制具有所需大小的图像,如下所示 System.Drawing.Image image = Image.FromStream(ms);
Graphic graphic = Graphics.FromImage(image); graphic.DrawImage(image,0,0,image.Width,image.Height);