首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在C#中将EXIF数据写入图像?

在C#中将EXIF数据写入图像可以通过使用System.Drawing.Imaging命名空间中的类来实现。以下是一个示例代码,演示了如何将EXIF数据写入图像:

代码语言:txt
复制
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Text;

public class ExifWriter
{
    public static void WriteExifData(string imagePath, string key, string value)
    {
        using (Image image = Image.FromFile(imagePath))
        {
            PropertyItem[] propertyItems = image.PropertyItems;

            // 创建一个新的PropertyItem对象
            PropertyItem newItem = (PropertyItem)Activator.CreateInstance(typeof(PropertyItem));

            // 设置PropertyItem的ID
            newItem.Id = 0x9003; // 0x9003表示Image Description

            // 设置PropertyItem的类型为ASCII字符串
            newItem.Type = 2;

            // 设置PropertyItem的值为ASCII字符串的字节数组
            newItem.Value = Encoding.ASCII.GetBytes(value + '\0');

            // 设置PropertyItem的长度
            newItem.Len = newItem.Value.Length;

            // 将新的PropertyItem添加到PropertyItem数组中
            Array.Resize(ref propertyItems, propertyItems.Length + 1);
            propertyItems[propertyItems.Length - 1] = newItem;

            // 将修改后的PropertyItems数组重新设置给图像
            image.SetPropertyItem(newItem);

            // 保存修改后的图像
            image.Save(imagePath);
        }
    }
}

使用上述代码,你可以通过调用WriteExifData方法来将EXIF数据写入图像。其中,imagePath参数表示图像文件的路径,key参数表示EXIF数据的键,value参数表示EXIF数据的值。

以下是一个示例调用代码:

代码语言:txt
复制
string imagePath = "path/to/image.jpg";
string key = "ImageDescription";
string value = "This is a sample image.";

ExifWriter.WriteExifData(imagePath, key, value);

这个示例代码将在指定的图像文件中添加一个名为"ImageDescription"的EXIF数据,并将其值设置为"This is a sample image."。

请注意,这只是一个简单的示例,你可以根据需要修改和扩展代码来处理其他类型的EXIF数据。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JPEG文件格式解析(一) Exif 与 JFIF

JPEG本身只有描述如何将一个视频/图片转换为字节的数据流(streaming),但并没有说明这些字节如何在任何特定的存储媒体上被封存起来。...JPEG/Exif文件格式标准是Camera产业联合会发布,主要用于摄像设备上,摄像产业把Exif作为行业的元数据(metadata)交换格式 JPEG/JFIF文件格式标准是为了方便JPEG压缩图像在广泛的平台和应用间以最小的存储空间代价进行交换而设计的...[ JFIF APP0标记段结构 ] JFIF的结构相对比较简单,从APP0标记码起始地址偏移18个字节后,即可得到对应的缩略图数据数据的地址,这里是图像数据是未压缩过的,这与BMP位图的图像数据格式是一致的...蓝色高亮部分0000 03b4 是IFD的Offset to next IFD信息,该部分往后便是 Data Area of IFD0部分;这里已经可以看到一些字符串信息,手机型号,拍摄时间,图像处理软件等...汇总成表格后可以明显的看到两者的差异主要是因为APP段的应用数据差异导致的,与图像本身相关的数据两者的差异并不大。

27.1K72

JPEGExifTIFF格式解读(2):图片元数据保存及EXIF详解

主要是由人工在后期通过软件写入数据。XMP:XMP实际上是一种元数据存储和管理的标准,可以将Exif,IPTC或其他的数据都按XMP统一的格式存放在图像文件中。...为了解决这个问题,Adobe公司推出用XMP管理元数据的方法,即将图像中的元数据Exif,IPTC等都纳入XMP库中,由XMP管理。...JPG、TIF就是EXIF,而PNG在windows上,图片元数据查看就是就是图片文件的 【属性】——>【详细信息】 这一页,如下图所示:Exif 是什么?...且每一个 Exif 文件格式都开始于它, SOI 标记标记 XX 的大小=SSSS标记 YY 的大小=TTTTSOS 标记 的大小=UUUU图像数据流EOI 标记FFD8FFXXlo0pSSSSDDDD...XXXXFFD9缩略图像Exif与TIFFTIFF是一种图像文件格式,包含图像数据和元数据

8.7K30
  • UWP 写入图片 Exif 信息

    本文告诉大家如何在 UWP 中,保存图片的时候,写入 Exif 信息,也就是照片的 相机型号 制造商 光圈值等信息的写入 在 UWP 中,保存图片或照片需要用到图片编码器,在使用编码器写入前可以设置编码器写入图片的属性...关于啥是 Exif 信息,还请自行百度 不同的图片格式可以支持的 Exif 信息范围不相同,咱以下使用 jpg 图片作为例子。...如果大家切换为其他图片格式,还请自行测试一下 在创建编码器可以在构造函数传入参数,通过参数设置一些 Exif 信息,质量信息。...这些可以从 官方文档 获取 官方文档里面说写入相机型号的描述如下 propertyDescription name = System.Photo.CameraManufacturer shellPKey...写入相机型号的描述等代码如下 var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId

    91430

    关于.net中获取图像缩略图的函数GetThumbnailImage的一些认识。

    如果没有,则从图像数据中抽样填充到缩略图数据中,至于抽样算法,这个没有研究,也许是线性插值吧。...因此我们可以初步的判断如果内嵌了缩略图,则GdipGetImageThumbnail会直接从内嵌的数据中进行缩放。...附带说一个问题:不知道大家注意到没有,上述代码中 GdipLoadImageFromFile 函数执行的时间都很短,而基本相同的函数在C#的Bitmap.FromFile函数中对于上述测试图像都要200...结论3:C#下的Bitmap或者Image类的GetThumbnailImage函数不适合于做预览工作,原因就是他不如我在VB6下工作的快,特别是对于那些已经内嵌了缩略图的图像。...如果是用C#做,我可能会像类似于VB中这样,直接调用GDI+的API函数。

    1.3K30

    python3随笔-opencv读取图像

    如何安装opencv-python $pip3 install opencv-python 如何读取图像数据 import numpy as np import cv2 as cv img = cv.imread...对于灰度图像,只返回相应的强度。数据读取方式为: img[行号,列号,:] 函数根据内容而不是文件扩展名确定图像的类型。 在彩×××像的情况下,解码后的图像将以B G R顺序存储通道。...在MacOSX上,还有一个使用本地MacOSX图像阅读器的选项。但是要注意的是,由于MacOSX中嵌入了颜色管理,当前这些本机图像加载器提供的图像像素值不同。...在CMake中将WITH_GDAL标记设置为true和IMREAD_LOAD_GDAL来加载图像的情况下,将使用GDAL驱动程序来解码图像,支持以下格式:光栅、向量。...如果EXIF信息嵌入到图像文件中,将考虑EXIF方向,因此图像将相应地旋转,除非传递了IMREAD_IGNORE_ORIENTATION标记。 显示图像 cv.imshow('img',img)

    78020

    JPEGExifTIFF格式解读(4):win10照片旋转win7不识别。

    Exif数据根据不同的内容分布在五个不同的IFD中。IFD0中的数据是由TIFF定义的基本图像数据,其中有些与照片无关,所以Exif只实现其中一小部分。...这部份数据在Photoshop中称为TIFF元数据Exif subIFD中的数据是由Exif定义的元数据,都是和相机照片有关的数据,是Exif的主要数据,其中有一些与IFD0中的重复。...GPS subIFD 中的数据是记录照片的拍摄位置,对于没有GPS功能的相机,这里的数据都是空的。IFD1中的数据是缩略图的图像及该图像的元数据。...Windows 下用缩略图视图查看图像会按照【第一步读取当前文件夹下Thumbs.db – 如果没有Thumbs.db文件则读取图像exif缩略图信息 – 如果图像文件没有exif缩略图信息则生成缩略图信息并保存至...需要指出的是只有能识别方向参数的图像软件(Acdsee,Photoshop)才能在查看图像时自动旋转,Windows下的图片查看器没有这种功能。

    1.4K10

    JPEGExifTIFF格式解读(3):TIFF与JPEG里面EXIF信息存储原理解读

    ,对于某些图像中的特有元数据照片中的光圈快门等)可以用Private IFD自行定义其专门的元数据。...Exif就是由IFD0中Tag=0x8769 的目录项(称为exifIFD)指向一个Exif subIFD,在该子IFD中就是与照片有关的各种元数据光圈,快门等。...3个整型数据值都为8,表示这是一幅24位图像。JPEG图片的EXIF数据EXIF JPEG文件将EXIF信息存储在JFIF的APP1标记中。...EXIF标示符是为了与其它也使用 APP1标记的数据XMP)区分。...在这种情况下, 你只要简单的把数据拷贝到计算机的RGB格式 中就能看到缩略图了( BMP 格式, 或者拷贝到 VRAM 目录下). Kodak DC-210/220/260 就使用 这个格式.

    3.5K21

    计算机视觉模型效果不佳,你可能是被相机的Exif信息坑了

    然而眼见并非为实,实际图像的像素数据不会旋转。这是由于图像传感器是对连续的像素信息流进行逐行读取,因此你无论纵向和横向握持相机,图像都是按照一个方向进行存储。 ?...这是因为照片里还保存着一组元数据,称之为Exif,即可交换图像文件格式(Exchangeable image file format)。...Exif原先是用在TIFF图像格式上,后来才加入到JPEG图像格式中,而图像数据集中的图片大多是JPEG格式。 一些程序为了保持向后兼容性,不会去解析Exif数据。...大多数用于处理图像数据的Python库(NumPy、SciPy,TensorFlow,Keras等)就是这样的。 这意味着当你使用这些工具导入图像时,都将获得原始的未旋转图像数据。...解决方法 解决以上问题的方法就是,在导入图像时检查它们的Exif数据,在必要时旋转图像

    5.3K51

    用可视化地图讲照片的故事(Python+Leaflet)

    本文转载自蛰虫始航 手机和数码相机拍的照片里除了我们能看到的RGB像元数据,还包含了拍摄时间、图像分辨率、感光值、GPS坐标等属性,记录在Exif(Exchangeable image file format...随着手机像素越来越高,用手机记录身边的事(和自拍)已经变成很自然的动作,在一年里我们的手机肯定存了很多照片,照片和Exif数据块中的位置可以做哪些有趣的事情?...我们可以直观看近些年都去了哪里;可以制作和(男/女)朋友一起出去玩的地图故事;可以根据拍照时间和位置动态可视化游览路线;可以基于坐标的聚类整理照片,拍了800张照片,把每个城市的照片批量整理到各自文件夹...;…… 地理位置属于个人隐私数据,相关应用需要注意隐私问题,之前挺火的一个谣言是可以根据别人朋友圈发的图知道别人的具体位置,但实际上微信会对朋友圈的图片进行压缩,Exif里的坐标数据是会删除掉的,所以朋友圈的图片是提取不了坐标的...,把数据写入js文件再调用就好。

    1.9K20

    为什么我的 CV 模型不好用?没想到原因竟如此简单……

    图像数据最常见的格式是 Exif(Exchangeable image file forma「可交换图像文件格式」的缩写)。Exif 格式的元数据放在相机保存的 jpeg 文件中。...你不能直接从图像本身读到这种 Exif 数据,但可以使用任何知道如何读取这一数据的程序进行读取。 下面是使用 Exiftool 读取的上面的鹅照片的 Exif数据: ?...其保持了与老一代图像查看器的后向兼容性,但这也意味着某些程序根本没有费心去解析 Exif 数据。...当图像方向正确时,谷歌的检测结果要具体得多——不仅能正确给出「Goose(鹅)」标签,而且置信度分数要高得多,这就好多了。 如果你能本演示中的那样看到图像是侧向的,那么这个问题要明显得多。...Mac 上的 Finder 总是显示应用了 Exif 旋转后的图像,这样就没法看到文件中的图像数据实际上是侧向的。

    1.1K30

    用可视化地图讲照片的故事(Python+Leaflet)

    手机和数码相机拍的照片里除了我们能看到的RGB像元数据,还包含了拍摄时间、图像分辨率、感光值、GPS坐标等属性,记录在Exif(Exchangeable image file format)模块里。...随着手机像素越来越高,用手机记录身边的事(和自拍)已经变成很自然的动作,在一年里我们的手机肯定存了很多照片,照片和Exif数据块中的位置可以做哪些有趣的事情?...我们可以直观看近些年都去了哪里;可以制作和(男/女)朋友一起出去玩的地图故事;可以根据拍照时间和位置动态可视化游览路线;可以基于坐标的聚类整理照片,拍了800张照片,把每个城市的照片批量整理到各自文件夹...;…… 地理位置属于个人隐私数据,相关应用需要注意隐私问题,之前挺火的一个谣言是可以根据别人朋友圈发的图知道别人的具体位置,但实际上微信会对朋友圈的图片进行压缩,Exif里的坐标数据是会删除掉的,所以朋友圈的图片是提取不了坐标的...,把数据写入js文件再调用就好。

    2.3K30

    图片之EXIF信息提取与处理利用

    [TOC] 0x00 EXIF基础信息 Exif(Exchangeable image file format 可交换图像文件格式),是一种图像文件格式,其数据存储与JPEG格式是完全相同的,EXIF可以附加于...EXIF数据藏在照片里的小秘密,那Exif是什么?...答:Exif的意思是“可交换图像文件“,实际上Exif格式就是在JPEG格式头部插入了数码照片的信息(它的数据存储与JPEG格式是完全相同的),包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌...其中0xFFD8 表示SOI(Start of image 图像开始),0xFFD9表示EOI(End of image 图像结束),两个特殊的标志没有附加的数据,而其他的标志在标志后都会带有附加的数据...72.H 8.H 2e.H,经度(16.H 1a.H 1a.H)接下来写入,测试GPS经纬已经变化,原图检验也过了。

    3.3K11

    JPEGExifTIFF格式解读(1):JEPG图片压缩与存储原理分析

    且每一个 Exif 文件格式都开始于它, SOI 标记标记 XX 的大小=SSSS标记 YY 的大小=TTTTSOS 标记 的大小=UUUU图像数据流EOI 标记FFD8FFXXlo0pSSSSDDDD...且每一个 Exif 文件格式都开始于它, ; Marker used by Exif 0xFF+Marker Number(1 byte)+Data size(2 bytes)+Data(n bytes...该图像文件从SOI(0xFFD8) 标记开始, 因此它是一个 JPEG 文件. 后面马上跟着 APP1 标记. 而它的所有 Exif数据都被存储在 APP1 数据域中....关于exif信息解码,请阅读《JPEG/Exif/TIFF格式解读(2):图片元数据保存及EXIF详解》 jpeg10中必须的段类型 这里列举10种必备的段类型 APP0图像识别信息 --------...图像Exif信息 元数据(Metadata) https://www.jianshu.com/p/a6d67df60e7e 关于图片文件旋转JPEG与EXIF信息  https://blog.csdn.net

    3.4K11

    JPEGExifTIFF格式解读(1):JEPG图片压缩与存储原理分析

    且每一个 Exif 文件格式都开始于它, SOI 标记标记 XX 的大小=SSSS标记 YY 的大小=TTTTSOS 标记 的大小=UUUU图像数据流EOI 标记FFD8FFXXlo0pSSSSDDDD...且每一个 Exif 文件格式都开始于它, ;Marker used by Exif0xFF+Marker Number(1 byte)+Data size(2 bytes)+Data(n bytes)...而它的所有 Exif数据都被存储在 APP1 数据域中. 上面的 "SSSS" 这部分表示 APP1 数据域 (Exif data area)的大小....关于exif信息解码,请阅读《JPEG/Exif/TIFF格式解读(2):图片元数据保存及EXIF详解》jpeg10中必须的段类型这里列举10种必备的段类型APP0图像识别信息-------------...图像Exif信息 元数据(Metadata) https://www.jianshu.com/p/a6d67df60e7e关于图片文件旋转JPEG与EXIF信息  https://blog.csdn.net

    1.6K10

    C# WinForm实现画笔签名及解决MemoryBmp格式问题

    需求 我的文章 《C# 结合JavaScript实现手写板签名并上传到服务器》主要介绍了 web 版的需求实现,本文应项目需求介绍如何通过 C# WinForm 通过画布画笔实现手写签名,并在开发过程中解决遇到的一些格式转换的问题...因此一个解决的思路是先临时创建一个白色背景的JPEG图片,图片的大小取决于panel控件的宽度和高度,然后再将画布的图像 bmpData 变量,实例化创建引用这个临时图片的路径。...= System.Drawing.Imaging.ImageFormat.Emf; } else if (extension == "exif...") { iformat = System.Drawing.Imaging.ImageFormat.Exif;...; 以上就是C# WinForm 通过画布画笔实现绘图的一些介绍,感谢您的阅读,希望本文能够对您有所帮助。

    10310

    TRTC案例:截图体积与清晰度

    JPEG是最常见的图像格式,是不支持透明的。图像占用的存储较小,但是牺牲了图像的质量。 作为一种有损的图像格式,用存储空间换了图像质量,各种压缩算法说白了就是抹掉图片里不打算存的数据。...图片压缩格式,png,jpeg等 除此之外,还有些影响因素:附加信息(EXIF,【附2】)、图片内容复杂度 等 下面对这几个影响因素分别做简单阐述: 1....(2)Exif信息 Exif(Exchangeable image file format)是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。...Exif 所记录的元数据信息非常丰富,主要包含了以下几类信息: 拍摄日期 拍摄器材(机身、镜头、闪光灯等) 拍摄参数(快门速度、光圈F值、ISO速度、焦距、测光模式等) 图像处理参数(锐化、对比度、饱和度...、白平衡等) 图像描述及版权信息 GPS定位数据 缩略图 这里放一个在线查看照片exif信息的工具: https://www.sojson.com/image/exif.html (含exif参数解释

    2.6K10

    Android操作Exif-ExifInterface全解析

    简介: Exif是一种图像文件格式,它的数据存储与JPEG格式是完全相同的。...实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及GPS全球定位系统数据...你可以利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但并不是所有的图形程序都能处理Exif信息。今天这篇文章就来讲讲Android中操作Exif。...进入ExifInterface类,发现方法很少,主要就是三个方面:读取、写入、缩略图。 一、读取: Exif信息在文件头中是以二进制的形式存储的,存储的字段名称和字段值格式都是固定的。...相对读取,写入就简单很多了。

    96110
    领券