Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 保存(流,图像格式)不';不能更改MIME类型_C#_Mime Types_System.drawing - Fatal编程技术网

C# 保存(流,图像格式)不';不能更改MIME类型

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

我正在JPG源图像上执行
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[]的一部分,而且根据我转换的格式手动设置它们会更容易。只是我的一个误会。