/// <summary>
        /// Writes the <code>image</code> property.  The <code>image</code> property specifies the URL of the image.
        /// </summary>
        /// <param name="image">The image.  A data URI will be created for this image.</param>
        /// <param name="imageFormat">The image format to use to encode the image in the data URI.</param>
        public void WriteImage(Image image, CesiumImageFormat imageFormat)
        {
            const string PropertyName = ImagePropertyName;

            if (IsInterval)
            {
                Output.WritePropertyName(PropertyName);
            }
            Output.WriteValue(CesiumFormattingHelper.ImageToDataUri(image, imageFormat));
        }
Exemple #2
0
        /// <summary>
        /// Writes the <code>uri</code> property.  The <code>uri</code> property specifies the URI value.
        /// </summary>
        /// <param name="image">The image.  A data URI will be created for this image.</param>
        /// <param name="imageFormat">The image format to use to encode the image in the data URI.</param>
        public void WriteUri(Image image, CesiumImageFormat imageFormat)
        {
            const string PropertyName = UriPropertyName;

            if (ForceInterval)
            {
                OpenIntervalIfNecessary();
            }
            if (IsInterval)
            {
                Output.WritePropertyName(PropertyName);
            }
            Output.WriteValue(CesiumFormattingHelper.ImageToDataUri(image, imageFormat));
        }
Exemple #3
0
        /// <summary>
        /// Converts a KMZ file to CZML.
        /// </summary>
        /// <param name="inputStream">A stream for a KMZ file.</param>
        /// <param name="outputWriter">A writer that will receive the converted CZML document.</param>
        /// <param name="prettyFormatting">If true, produces larger, more readable.  False by default.</param>
        public static void KmzToCesiumLanguage(Stream inputStream,
                                               TextWriter outputWriter,
                                               bool prettyFormatting = false)
        {
            CzmlDocument document = new CzmlDocument(outputWriter);

            document.CesiumOutputStream.PrettyFormatting = prettyFormatting;

            document.CesiumOutputStream.WriteStartSequence();

            using (ZipFile zipFile = ZipFile.Read(inputStream))
            {
                foreach (ZipEntry entry in zipFile)
                {
                    string            fileName    = entry.FileName;
                    CesiumImageFormat?imageFormat = InferImageFormat(fileName);

                    if (imageFormat != null && !document.ImageResolver.ContainsUrl(fileName))
                    {
                        using (Stream stream = entry.OpenReader())
                        {
                            string dataUrl = CesiumFormattingHelper.ImageToDataUri(stream, imageFormat.Value);
                            document.ImageResolver.AddUrl(fileName, dataUrl);
                        }
                    }
                }

                foreach (ZipEntry entry in zipFile)
                {
                    string extension = Path.GetExtension(entry.FileName);
                    if (".kml".Equals(extension, StringComparison.OrdinalIgnoreCase))
                    {
                        using (Stream stream = entry.OpenReader())
                            using (StreamReader streamReader = new StreamReader(stream))
                                Convert(streamReader, document);
                    }
                }
            }

            document.CesiumOutputStream.WriteEndSequence();
        }
        /// <summary>
        /// Create a CZML resource from a stream containing image data.  The image data will
        /// be embedded in the CZML document using a data URI.
        /// </summary>
        /// <param name="stream">The stream containing image data to write.</param>
        /// <param name="imageFormat">The format of the image.</param>
        /// <returns>A new <see cref="CesiumResource"/> containing the image data as a data URI.</returns>
        public static CesiumResource FromStream(Stream stream, CesiumImageFormat imageFormat)
        {
            string dataUri = CesiumFormattingHelper.ImageToDataUri(stream, imageFormat);

            return(new CesiumResource(dataUri, CesiumResourceBehavior.Embed));
        }