我们来详细讲解“C#实现给图片添加日期信息的示例详解”。
目录
- 示例1:使用ExifLib库读取图片信息
- 示例2:给图片添加日期信息
示例1:使用ExifLib库读取图片信息
首先,我们需要使用一个Exif库获取图片的元数据信息,这里我推荐使用ExifLib库。
以下是一个简单的示例,演示了如何使用ExifLib库读取图片的元数据信息:
using System.IO;
using ExifLib;
// load the image file
using (var fileStream = new FileStream("image.jpg", FileMode.Open))
{
// create an instance of the ExifReader class using the loaded image stream
var reader = new ExifReader(fileStream);
// read the EXIF data
var dateTaken = DateTime.MinValue;
if (reader.GetTagValue<DateTime>(ExifTags.DateTimeOriginal, out dateTaken))
{
Console.WriteLine($"Image was taken on {dateTaken}");
}
}
在上面的示例中,首先我们使用FileMode.Open
打开并加载了一个图片文件流。然后,我们创建了一个ExifReader
实例,它使用加载的图片流来读取图片的元数据信息。最后,我们使用GetTagValue
方法读取DateTimeOriginal
标记的值,如果读取成功,就将其显示在控制台上。
示例2:给图片添加日期信息
然后,我们需要编写代码来向图片中添加日期信息,并保存为新的文件。以下是示例代码:
using System.IO;
using System.Drawing;
using ExifLib;
// load the image file
using (var fileStream = new FileStream("image.jpg", FileMode.Open))
{
// create an instance of the ExifReader class using the loaded image stream
var reader = new ExifReader(fileStream);
// read the EXIF data
var dateTaken = DateTime.MinValue;
if (reader.GetTagValue<DateTime>(ExifTags.DateTimeOriginal, out dateTaken))
{
// create a bitmap object from the image stream
using (var image = new Bitmap(fileStream))
{
// add the date taken to the image
using (var graphics = Graphics.FromImage(image))
{
graphics.DrawString(dateTaken.ToString(), new Font("Arial", 10), Brushes.Red, new PointF(0, 0));
}
// save the modified image to a new file
var fileName = Path.GetFileNameWithoutExtension("image.jpg");
var fileExtension = Path.GetExtension("image.jpg");
image.Save($"{fileName}_date_added{fileExtension}");
}
}
}
在上面的示例中,我们打开并加载了一个图片流,并使用ExifLib库读取了图片的日期信息。然后,我们用Bitmap
类从图片流中创建了一个位图对象,并使用Graphics
类将日期信息添加到了图像中。
最后,我们为新图像生成一个文件名,并使用Bitmap.Save
方法将修改后的图像保存到新的文件中。
通过这两个示例,我们实现了给图片添加日期信息的功能。我们可以通过这个案例了解到使用ExifLib库读取图片元数据的方法,以及如何使用Graphics类将日期绘制到图像中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现给图片添加日期信息的示例详解 - Python技术站