c# - 使用 C# 和 ASP.NET 从 Memorystream 保存图像

标签 c# asp.net

我正在使用内存流通过 FileUpload 控件调整图像大小。调整大小后,我希望它保存到我的文件系统 "~/images/2012/"+ filename

如何从内存流中保存图像?

System.Drawing.Image imageLarge = System.Drawing.Image.FromStream(stream);
System.Drawing.Image imageLarge1 = ResizeImage(imageLarge, 200, 300);

MemoryStream memolarge = new MemoryStream();
imageLarge1.Save(memolarge, System.Drawing.Imaging.ImageFormat.Jpeg);
System.Drawing.Image returnImage = System.Drawing.Image.FromStream(memolarge);

Encoder myEncoder;
EncoderParameter myEncoderParameter;
EncoderParameters myEncoderParameters;
myEncoder = Encoder.Quality;
myEncoderParameter = new EncoderParameter(myEncoder, 100L);
myEncoderParameters.Param[0] = myEncoderParameter;

string convertedImage = returnImage.ToString();
returnImage.Save("~/images/2012/" + filename, 
    ImageFormat.Jpeg, myEncoderParameters);

这是我遇到的重载方法错误:

cannot convert from 'System.Drawing.Imaging.ImageFormat' to System.Drawing.Imaging.ImageCodecInfo

最佳答案

查看 Image.Save 的重载.

只有最后两个接受 EncoderParameters,它们都不接受 ImageFormat - 都接受 ImageCodecInfo

能够自己诊断此类问题非常重要:

  • 仔细查看编译错误
  • 阅读文档
  • 检查你打的电话是否有意义

这与保存到 MemoryStream 特别无关 - 事实上,不清楚为什么要保存 Image 然后立即加载 Image 来自同一流。 (无论如何,如果您真的想继续这样做,我建议您先将 Position 设置为 0。)

关于c# - 使用 C# 和 ASP.NET 从 Memorystream 保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12714882/

相关文章:

c# - 命名空间被编译器混淆

c# - 列表框 WP7 中的反向堆栈项目

c# - 在 .Where() 中使用 .SingleOrDefault() 将引发以下异常 :- System. NotSupportedException 未被用户代码处理

c# - 如何在 ASP.net razor 网页中使用 "Using"语句?

c# - 具有四个以上参数(方法参数)的 Action 委托(delegate)

c# - 如何在逐字字符串中包含逐字字符串?

c# - 如何在 C# 中使用 zxing 应用 Reed-Solomon 算法

ASP.NET 网站安装/更新

c# - 从 View (.cshtml) 访问 viewbag 值

asp.net - 单声道 2.6 发布