Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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());
        }