[英]How to save a Text/document file to specific folder using MemoryStream in asp.net using c#?
[英]Save Image from Memorystream using C# and 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);
這是我遇到的錯誤以及重載的方法錯誤:
無法從“ System.Drawing.Imaging.ImageFormat”轉換為System.Drawing.Imaging.ImageCodeccInfo
查看Image.Save
的重載。
只有最后兩個接受EncoderParameters
,並且它們都不接受ImageFormat
都接受ImageCodecInfo
。
能夠自己診斷此類問題非常重要:
特別是,這與保存到MemoryStream
沒有關系-實際上,不清楚為什么要保存Image
,然后立即從同一流中加載Image
。 (如果您確實想繼續這樣做,我建議您在將Position
設置為0之前還是這樣做。)
嘗試以下這一行:
returnImage.Save(
"~/images/2012/" + filename,
ImageCodecInfo.GetImageEncoders()
.Where(i => i.MimeType == "image/jpeg")
.First(),
myEncoderParameters);
請參閱在c#中從memorystream中將其另存為jpeg,這與您正在尋找的功能非常相似。
也可以正確更改編解碼器http://msdn.microsoft.com/zh-cn/library/ytz20d80.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.