private void SetExifData() { // GPS version var image = Image; var exif = new ExifWorks.ExifWorks(ref image); // center coordinate var center = new LongLat(); foreach (var corner in Document.GetMapCornersLongLat()) { center += corner / 4; } var ver = new byte[] { 2, 2, 0, 0 }; var longitudeRef = new byte[] { Convert.ToByte(center.Longitude < 0 ? 'W' : 'E'), 0 }; var longitude = ExifUtil.GetExifGpsCoordinate(center.Longitude); var latitudeRef = new byte[] { Convert.ToByte(center.Latitude < 0 ? 'S' : 'N'), 0 }; var latitude = ExifUtil.GetExifGpsCoordinate(center.Latitude); exif.SetProperty((int)ExifWorks.ExifWorks.TagNames.GpsVer, ver, ExifWorks.ExifWorks.ExifDataTypes.UnsignedLong); exif.SetProperty((int)ExifWorks.ExifWorks.TagNames.GpsLongitudeRef, longitudeRef, ExifWorks.ExifWorks.ExifDataTypes.AsciiString); exif.SetProperty((int)ExifWorks.ExifWorks.TagNames.GpsLongitude, longitude, ExifWorks.ExifWorks.ExifDataTypes.UnsignedRational); exif.SetProperty((int)ExifWorks.ExifWorks.TagNames.GpsLatitudeRef, latitudeRef, ExifWorks.ExifWorks.ExifDataTypes.AsciiString); exif.SetProperty((int)ExifWorks.ExifWorks.TagNames.GpsLatitude, latitude, ExifWorks.ExifWorks.ExifDataTypes.UnsignedRational); if (Properties.EncodingInfo.Encoder.MimeType == "image/jpeg") { exif.SetProperty((int)ExifWorks.ExifWorks.TagNames.JPEGQuality, new byte[] { (byte)(100 * ((JpegEncodingInfo)Properties.EncodingInfo).Quality) }, ExifWorks.ExifWorks.ExifDataTypes.UnsignedByte); } exif.SetPropertyString((int)ExifWorks.ExifWorks.TagNames.SoftwareUsed, Strings.QuickRoute + " " + Document.GetVersionString()); }
private void SetExifData() { // GPS version var image = Image; var exif = new ExifWorks.ExifWorks(ref image); // center coordinate var center = new LongLat(); foreach (var corner in Document.GetMapCornersLongLat()) { center += corner / 4; } var ver = new byte[] { 2, 2, 0, 0 }; var longitudeRef = new byte[] { Convert.ToByte(center.Longitude < 0 ? 'W' : 'E'), 0 }; var longitude = ExifUtil.GetExifGpsCoordinate(center.Longitude); var latitudeRef = new byte[] { Convert.ToByte(center.Latitude < 0 ? 'S' : 'N'), 0 }; var latitude = ExifUtil.GetExifGpsCoordinate(center.Latitude); exif.SetProperty((int)ExifWorks.ExifWorks.TagNames.GpsVer, ver, ExifWorks.ExifWorks.ExifDataTypes.UnsignedLong); exif.SetProperty((int)ExifWorks.ExifWorks.TagNames.GpsLongitudeRef, longitudeRef, ExifWorks.ExifWorks.ExifDataTypes.AsciiString); exif.SetProperty((int)ExifWorks.ExifWorks.TagNames.GpsLongitude, longitude, ExifWorks.ExifWorks.ExifDataTypes.UnsignedRational); exif.SetProperty((int)ExifWorks.ExifWorks.TagNames.GpsLatitudeRef, latitudeRef, ExifWorks.ExifWorks.ExifDataTypes.AsciiString); exif.SetProperty((int)ExifWorks.ExifWorks.TagNames.GpsLatitude, latitude, ExifWorks.ExifWorks.ExifDataTypes.UnsignedRational); if (Properties.EncodingInfo.Encoder.MimeType == "image/jpeg") { exif.SetProperty((int)ExifWorks.ExifWorks.TagNames.JPEGQuality, new byte[] {(byte)(100 * ((JpegEncodingInfo)Properties.EncodingInfo).Quality)}, ExifWorks.ExifWorks.ExifDataTypes.UnsignedByte); } exif.SetPropertyString((int)ExifWorks.ExifWorks.TagNames.SoftwareUsed, Strings.QuickRoute + " " + Document.GetVersionString()); }