C# 保存(流,图像格式)不';不能更改MIME类型
我正在JPG源图像上执行C# 保存(流,图像格式)不';不能更改MIME类型,c#,mime-types,system.drawing,C#,Mime Types,System.drawing,我正在JPG源图像上执行Bitmap.Save(MemoryStream,ImageFormat.Gif),但在检查图像保存到的MemoryStream的MIME类型时,仍然会得到image/jpeg。从返回图像的质量大大降低的情况来看,我确信实际的转换正在进行,但同时我也确信MIME类型也被正确读取 我的代码可能有问题,或者这对于位图.Save?来说正常吗?假设(根据您前面的问题判断)这是ASP.NET/HTTP,通常您必须设置内容类型头以设置要传递的数据的mime类型: Response.C
Bitmap.Save(MemoryStream,ImageFormat.Gif)
,但在检查图像保存到的MemoryStream的MIME类型时,仍然会得到image/jpeg
。从返回图像的质量大大降低的情况来看,我确信实际的转换正在进行,但同时我也确信MIME类型也被正确读取
我的代码可能有问题,或者这对于位图.Save
?来说正常吗?假设(根据您前面的问题判断)这是ASP.NET/HTTP,通常您必须设置内容类型头以设置要传递的数据的mime类型:
Response.ContentType = "image/gif";
保存到.NET stream的位图只是一个字节流,本身并不包含mime类型。A
MemoryStream
只是一个字节流-您指的是什么mime类型属性?我不想硬编码,所以我通过互操作调用读取流/byte[]的mime类型来设置ContentType。我保存的位图实际上是通过磁盘上源图像的文件流初始化的,我认为它确实存储了MIME类型。我认为现在发生的是,相同的字节数组正在从一个方法转移到另一个方法,并且字节[]中存储MIME类型的部分(前256个字节)在转换后不受影响。@rafale:这听起来像是过度工程化了-您已经调用了Bitmap.Save()
您传递的是ImageFormat.Gif
-您可以在传递之前设置mime类型-您可以指定Gif是的,这就是我现在要做的。我没有意识到MIME类型不一定是文件/byte[]的一部分,而且根据我转换的格式手动设置它们会更容易。只是我的一个误会。