C# 是否从通用图像格式中删除所有元数据?

C# 是否从通用图像格式中删除所有元数据?,c#,image,image-processing,bitmap,metadata,C#,Image,Image Processing,Bitmap,Metadata,我正在为一个项目写服务,这个项目将处理我们的图像处理。一个这样的进程应该从提供的字节[]中剥离所有元数据,并返回与字节[]相同的映像 我目前正在使用的方法总是将图像转换为位图,然后将其转换回原始格式并从MemoryStream返回数据 我还没能测试它,但有些东西告诉我,我将经历一些质量损失 如何从任何具有通用格式的图像中删除所有元数据 bmp、gif、png、jpg、图标、tiff 我不知道如何进一步缩小范围。如果我能得到一些关于否决票的反馈,那就太好了。对于除JPEG以外的无损格式,您可以将其

我正在为一个项目写服务,这个项目将处理我们的图像处理。一个这样的进程应该从提供的字节[]中剥离所有元数据,并返回与字节[]相同的映像

我目前正在使用的方法总是将图像转换为位图,然后将其转换回原始格式并从MemoryStream返回数据

我还没能测试它,但有些东西告诉我,我将经历一些质量损失

如何从任何具有通用格式的图像中删除所有元数据

bmp、gif、png、jpg、图标、tiff


我不知道如何进一步缩小范围。如果我能得到一些关于否决票的反馈,那就太好了。

对于除JPEG以外的无损格式,您可以将其加载为位图并重新保存。不确定.NET是否本机支持TIFF,我怀疑它是否支持

对于JPEG,正如您所建议的,如果在解压缩文件后压缩文件,可能会导致质量损失。为此,您可以尝试一下,看看它是否有什么作用。如果没有,则可以使用命令行工具(如ImageMagick)剥离元数据。如果您使用ImageMagick,您就万事大吉了,因为它支持您所需的所有格式。您需要的命令是convert-strip

对于TIFF,.NET具有内置的TiffBitmapDecoder和…编码器类,您可能可以使用

简而言之,使用像ImageMagick这样的外部工具绝对是最简单的解决方案。如果您不能使用外部工具,您几乎肯定需要对.NET本机不支持的格式和有损JPEG进行特殊处理

编辑:对不起,我刚读了那个ImageMagick。我想使用我上面链接的库或其他JPEG库是我能想到的最好的方法