Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/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
Graphics 如何在.NET 3.5中保存EXIF格式的图像文件_Graphics_Image Processing_Gdi+_Exif_Imaging - Fatal编程技术网

Graphics 如何在.NET 3.5中保存EXIF格式的图像文件

Graphics 如何在.NET 3.5中保存EXIF格式的图像文件,graphics,image-processing,gdi+,exif,imaging,Graphics,Image Processing,Gdi+,Exif,Imaging,我想使用System.Drawing.image.save或类似方法在使用.NET framework v3.5的C#应用程序中以EXIF格式保存图像。MSDN文档将EXIF列为ImageFormat的一个选项。然而,它似乎不受支持-至少在没有一些我不知道的配置的情况下。当我通过ImageCodeInfo枚举内置编码器时,不包括GetImageEncoders()EXIF。(我的机器(Vista Ultimate x64)上的内置编码器是:BMP、JPEG、GIF、TIFF和PNG。)如果我使用

我想使用System.Drawing.image.save或类似方法在使用.NET framework v3.5的C#应用程序中以EXIF格式保存图像。MSDN文档将EXIF列为ImageFormat的一个选项。然而,它似乎不受支持-至少在没有一些我不知道的配置的情况下。当我通过ImageCodeInfo枚举内置编码器时,不包括GetImageEncoders()EXIF。(我的机器(Vista Ultimate x64)上的内置编码器是:BMP、JPEG、GIF、TIFF和PNG。)如果我使用ImageFormat.Exif属性保存图像,我只需获得默认的PNG格式


如何使用.NET 3.5以EXIF格式保存图像?

您是否看到了这一点:

EXIF本身不是图像文件格式,而是符合JEITA规定的DSC(数码相机)标准的JPEG图像中的元数据格式

GDI+(即Microsoft.NET Framework)允许您通过image.PropertyItems读取/写入元数据图像属性,但是GDI+公开的EXIF属性非常繁琐,并且无法按预期的方式转换值。实际上,要能够以本机方式读取/写入这些值,需要做大量工作(例如,根据JEITA规范,您需要解压缩包含特殊编码值的二进制字段)


在这里可以找到一个实现所有标准EXIF属性的直接开源库,这可能是实现这一点最简单的方法。查看哪些读取文件,打印出所有EXIF属性,然后将属性添加到图像中。

谢谢,这是一篇有趣的文章。它适用于JFIF文件,但不适用于EXIF。不过,这是一个聪明的方法。