参数无效的简单问题

zmydebug 2010-06-18 01:06:09
System.IO.Stream fs = Request.InputStream;
byte[] bt = new byte[fs.Length];
fs.Read(bt, 0, (int)fs.Length);
MemoryStream ms = new MemoryStream(bt);
System.Drawing.Image myImage = System.Drawing.Image.FromStream(ms,true);//这里报FromStream的参数无效
myImage.Save(ms, ImageFormat.Jpeg);
save_img(ms);

这里的参数该如何写?
用fs替换ms一样的参数无效。
...全文
195 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
注意到了吗?将图片转换为二进制流,使用的是

new BinaryFormatter().Serialize(ms, image1);

对应地,使用

(Image)new BinaryFormatter().Deserialize(ms);

来恢复出图片。


而使用所谓的 Image.Save 来保存图片然后以后再FromStream,中间只是二进制流作为载体,我相信几乎所有国际上开源的软件的源代码,你都看不到这样做能够成功的!
  • 打赏
  • 举报
回复
这里有个例子,不但有图片和二进制转换,而且包括二进制图片如何序列化/反序列:
//Image image1 = pictureBox1.Image;
MemoryStream ms = new MemoryStream();
new BinaryFormatter().Serialize(ms, image1);
byte[] aBytes = ms.ToArray();


ms = new MemoryStream(aBytes);
Image image2 = (Image)new BinaryFormatter().Deserialize(ms);

System.IO.MemoryStream ms2 = new MemoryStream();
image2.Save(ms2, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] bBytes = ms.ToArray();
ms.Close();


直接将
宇峰科技 2010-06-18
  • 打赏
  • 举报
回复
System.Drawing.Image myImage = System.Drawing.Image.FromStream(ms,false);//
伴老思源 2010-06-18
  • 打赏
  • 举报
回复


public static Image FromStream (
Stream stream,
bool useEmbeddedColorManagement
)

参数
stream
Stream,包含该 Image 的数据。

useEmbeddedColorManagement
若要使用该数据流中嵌入的颜色管理信息,则设置为 true;否则设置为 false。



返回值
此方法创建的 Image。

马老虎 2010-06-18
  • 打赏
  • 举报
回复
S_trance 2010-06-18
  • 打赏
  • 举报
回复
额。
FormStream中的参数是 你要创建的文件名称.
ms 是创建支持的内存流,这个当然无效

62,046

社区成员

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

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

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

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