Tag: exif

更新图像文件中的EXIF信息

我需要在很多.png文件(成千上万的招聘图片)中更新EXIF信息,我想知道是否有一些(不太复杂和记录)的方式,我可以做到这一点,而无需打开(解压缩整个图像)和然后重新保存(再次压缩)?

将元数据写入MemoryStream时,JpegBitmapEncoder.Save()会抛出exception

我试图在JPG图像上设置没有它的元数据。 在这种情况下,您不能使用就地编写器(InPlaceBitmapMetadataWriter),因为图像中没有元数据的位置。 如果我使用FileStream作为输出 – 一切正常。 但是如果我尝试使用MemoryStream作为输出–JpegBitmapEncoder.Save()会抛出exception(来自HRESULT的exception:0xC0000005)。 经过一番调查后,我还发现如果我提供的是null而不是元数据,那么编码器可以将图像保存到内存流中。 我已经做了一个非常简化和简短的例子来重现问题: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Media.Imaging; namespace JpegSaveTest { class Program { public static JpegBitmapEncoder SetUpMetadataOnStream(Stream src, string title) { uint padding = 2048; BitmapDecoder original; BitmapFrame framecopy, newframe; BitmapMetadata metadata; JpegBitmapEncoder output = new JpegBitmapEncoder(); src.Seek(0, […]

在Windows Phone 7中获取EXIF标记

我想获得我在Windows Phone 7中拍摄的图像的所有EXIF标签。我尝试过使用ExifLib,但似乎无法正确使用它。 在我的CaptureImageAvailable事件处理程序中,我有以下代码: JpegInfo info = ExifReader.ReadJpeg(e.ImageStream, “Pic.jpeg”); Dispatcher.BeginInvoke(delegate() { textBox1.Text = info.ExposureTime.ToString(); textBox2.Text = info.FNumber.ToString(); }); e.ImageStream.Close(); textBox1和textBox2都显示为0。 我的“Cam.Capture事件”每200毫秒触发一次。 这对这些值有影响吗? 任何帮助将不胜感激! 🙂

更改照片的“DateTaken”

我刚刚从美国旅行回来,在编辑完所有照片之后,我发现相机使用的是以色列时区,而不是美国人。 有7个小时的时差,所以对我来说这是个大问题。 我有175GB的照片,但我只关心350张照片。 我无法手动编辑他们的EXIF,所以我想到了使用C#。 这个想法是它将读取每张照片的EXIF,获取时间,并在原始照片中设置时间减去7小时。 我尝试使用Image类,但它不起作用。 我尝试使用bitmapMetadate,它有效! 我已经设法得到时间,做了零下7个小时,但我不知道如何保存它。 我该怎么做? 谢谢! public static string PhotoToBeEdited(FileInfo f) { FileStream fs = new FileStream(f.FullName, FileMode.Open, FileAccess.Read, FileShare.Read); BitmapSource img = BitmapFrame.Create(fs); BitmapMetadata md = (BitmapMetadata)img.Metadata; string date = md.DateTaken; Console.WriteLine(date); DateTime dt= DateTime.Parse(date); date = dt.AddHours(-7).ToString(); […] return date; }

使用Magick.NET创建/写入EXIF数据

在C#中使用基于ImageMagick的库Magick.NET将EXIF元数据添加到当前没有EXIF配置文件的已处理JPEG中。 尝试创建配置文件都失败了: var newExifProfile = image.GetExifProfile(); if (newExifProfile == null) { newExifProfile = new ExifProfile(); } newExifProfile.SetValue(ExifTag.Copyright, “test”); ExifProfile有其他构造函数接受一个流或字节数组,不提供一个在.SetValue()时创建一个exception: Object reference not set to an instance of an object. at ImageMagick.ExifReader.GetBytes(UInt32 length) at ImageMagick.ExifReader.Read(Byte[] data) at ImageMagick.ExifProfile.SetValue(ExifTag tag, Object value) 如何使用Magick.NET编写EXIF数据?

你如何从GPS坐标获得国家/州/地区/城市/州/邮政/邮政?

我的所有照片都有GPS坐标。 我想要包含城市,州,邮政等的标签/ IPTC数据。但我所拥有的只是GPS坐标。 我怎样才能以自动化方式获取这些信息并获得有意义的信息(我有成千上万的照片,因此将每个照片输入谷歌地图都行不通)。

如何在Xamarin for Android中设置jpeg文件的属性?

我正在使用jpeg文件,当我查看windows下的jpeg文件的详细信息(右键单击 – >属性)时,在详细信息选项卡下有标题,主题,评级,标签,评论等条目。如何我在Xamarin(Android)中设置了这些属性? 谢谢。

如何从Apple iPhone拍摄的图像中读取EXIF数据

如何从使用C#的Apple iPhone拍摄的图像中读取EXIF数据? 我需要GPS相关数据。 PS:除了使用Apple iPhone拍摄的图像外,我知道如何阅读EXIF

在C#中从JPEG,XMP或EXIF读取数据元数据

我一直在寻找一种体面的方式来读取C#中JPEG文件的元数据(具体来说,是采用的日期),而且我的发布时间有点短。 据我所知,现有信息显示如下代码; BitmapMetadata bmd = (BitmapMetadata)frame.Metadata; string a1 = (string)bmd.GetQuery(“/app1/ifd/exif:{uint=36867}”); 但在我的无知中,我不知道GetQuery()将返回什么位元数据,或者传递什么。 我想首先尝试读取XMP,如果XMP不存在则回退到EXIF。 有一个简单的方法吗? 谢谢。

从JPG读取EXIF数据

我需要分析数千个jpeg文件(通过检索它的EXIF数据)。 它超过50 GB的数据。我无法读取整个文件,因为它需要花费太多时间。 C#中是否有任何方法只读取这些文件中的EXIF数据而无需加载和解压缩整个jpeg文件? 编辑:为什么我需要快速方法? 我试过这个问题的解决方案: 如何使用C#从文件中获取EXIF数据 对于1000张总大小约为1GB的图像,分析需要3分钟。 因此,对于较大的(50G)照片库,可能需要2个小时。 当您需要几乎即时的信息时,例如:“客户使用的缩放比例是什么”,这太慢了。