Beispiel #1
0
 /// <summary>
 /// Writes a value for the <c>image</c> property as a <c>uri</c> value.  The <c>image</c> property specifies the image to display on the surface.
 /// </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 WriteImageProperty(Image image, CesiumImageFormat imageFormat)
 {
     using (var writer = OpenImageProperty())
     {
         writer.WriteUri(image, imageFormat);
     }
 }
        /// <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));
        }
        /// <summary>
        /// Converts an image to a data URI in the form
        /// <code>data:&lt;MimeType&gt;;base64,&lt;ImageData&gt;</code>, where
        /// <code>&lt;MimeType&gt;</code> is the MIME type of the specified <paramref name="image"/>, and
        /// <code>&lt;ImageData&gt;</code> is the image data encoded as a Base 64 string.
        /// </summary>
        /// <param name="image">The image to convert.</param>
        /// <param name="imageFormat">The format of the image, which controls the mime type.</param>
        /// <returns>A data URI containing the content of the image.</returns>
        public static Uri ImageToDataUri(Image image, CesiumImageFormat imageFormat)
        {
            string mimeType = GetMimeTypeFromCesiumImageFormat(imageFormat);

            using (MemoryStream stream = new MemoryStream())
            {
                image.Save(stream, CesiumImageFormatToImageFormat(imageFormat));
                stream.Position = 0;
                return(BuildDataUri(mimeType, stream));
            }
        }
Beispiel #4
0
        public void TestFromImageFormats(CesiumImageFormat format)
        {
            var image = new Bitmap(EmbeddedData.Read("satellite.png"));

            var resource = CesiumResource.FromImage(image, format);

            Assert.IsNotNull(resource);

            StringAssert.StartsWith("data:", resource.Uri);
            StringAssert.Contains(";base64,", resource.Uri);
        }
Beispiel #5
0
        public static string ImageToDataUri([NotNull] Image image, CesiumImageFormat imageFormat)
        {
            string mimeType = GetMimeTypeFromCesiumImageFormat(imageFormat);

            using (MemoryStream stream = new MemoryStream())
            {
                image.Save(stream, CesiumImageFormatToImageFormat(imageFormat));
                stream.Position = 0;
                return(StreamToDataUri(stream, mimeType));
            }
        }
Beispiel #6
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));
        }
        private static string GetMimeTypeFromCesiumImageFormat(CesiumImageFormat imageFormat)
        {
            switch (imageFormat)
            {
            case CesiumImageFormat.Jpeg:
                return("image/jpeg");

            case CesiumImageFormat.Png:
                return("image/png");

            case CesiumImageFormat.Bmp:
                return("image/bmp");

            case CesiumImageFormat.Gif:
                return("image/gif");

            default:
                throw new ArgumentException(CesiumLocalization.ArgumentTypeInvalid, "imageFormat");
            }
        }
        private static ImageFormat CesiumImageFormatToImageFormat(CesiumImageFormat imageFormat)
        {
            switch (imageFormat)
            {
            case CesiumImageFormat.Jpeg:
                return(ImageFormat.Jpeg);

            case CesiumImageFormat.Png:
                return(ImageFormat.Png);

            case CesiumImageFormat.Bmp:
                return(ImageFormat.Bmp);

            case CesiumImageFormat.Gif:
                return(ImageFormat.Gif);

            default:
                throw new ArgumentException(CesiumLocalization.ArgumentTypeInvalid, "imageFormat");
            }
        }
        /// <summary>
        /// Reads from a stream containing an image into a data URI in the form
        /// <code>data:&lt;MimeType&gt;;base64,&lt;ImageData&gt;</code>, where
        /// <code>&lt;MimeType&gt;</code> is the MIME type of the specified image format, and
        /// <code>&lt;ImageData&gt;</code> is the image data encoded as a Base 64 string.
        /// This method does not attempt to decode the image data, but simply writes it directly to the data URI.
        /// </summary>
        /// <param name="stream">The stream containing the image to encode into a data URI.</param>
        /// <param name="imageFormat">The format of the image, which controls the mime type.</param>
        /// <returns>A data URI containing the content of the image.</returns>
        public static Uri ImageToDataUri(Stream stream, CesiumImageFormat imageFormat)
        {
            string mimeType = GetMimeTypeFromCesiumImageFormat(imageFormat);

            return(BuildDataUri(mimeType, stream));
        }
        private static string GetMimeTypeFromCesiumImageFormat(CesiumImageFormat imageFormat)
        {
            switch (imageFormat)
            {
                case CesiumImageFormat.Jpeg:
                    return "image/jpeg";

                case CesiumImageFormat.Png:
                    return "image/png";

                case CesiumImageFormat.Bmp:
                    return "image/bmp";

                case CesiumImageFormat.Gif:
                    return "image/gif";

                default:
                    throw new ArgumentException(CesiumLocalization.ArgumentTypeInvalid, "imageFormat");
            }
        }
        private static ImageFormat CesiumImageFormatToImageFormat(CesiumImageFormat imageFormat)
        {
            switch (imageFormat)
            {
                case CesiumImageFormat.Jpeg:
                    return ImageFormat.Jpeg;

                case CesiumImageFormat.Png:
                    return ImageFormat.Png;

                case CesiumImageFormat.Bmp:
                    return ImageFormat.Bmp;

                case CesiumImageFormat.Gif:
                    return ImageFormat.Gif;

                default:
                    throw new ArgumentException(CesiumLocalization.ArgumentTypeInvalid, "imageFormat");
            }
        }
 /// <summary>
 /// Converts an image to a data URI in the form
 /// <code>data:&lt;MimeType&gt;;base64,&lt;ImageData&gt;</code>, where
 /// <code>&lt;MimeType&gt;</code> is the MIME type of the specified <paramref name="image"/>, and
 /// <code>&lt;ImageData&gt;</code> is the image data encoded as a Base 64 string.
 /// </summary>
 /// <param name="image">The image to convert.</param>
 /// <param name="imageFormat">The format of the image, which controls the mime type.</param>
 /// <returns>A data URI containing the content of the image.</returns>
 public static string ImageToDataUri(Image image, CesiumImageFormat imageFormat)
 {
     string mimeType = GetMimeTypeFromCesiumImageFormat(imageFormat);
     using (MemoryStream stream = new MemoryStream())
     {
         image.Save(stream, CesiumImageFormatToImageFormat(imageFormat));
         stream.Position = 0;
         return BuildDataUri(mimeType, stream);
     }
 }
 /// <summary>
 /// Reads from a stream containing an image into a data URI in the form
 /// <code>data:&lt;MimeType&gt;;base64,&lt;ImageData&gt;</code>, where
 /// <code>&lt;MimeType&gt;</code> is the MIME type of the specified image format, and
 /// <code>&lt;ImageData&gt;</code> is the image data encoded as a Base 64 string.
 /// This method does not attempt to decode the image data, but simply writes it directly to the data URI.
 /// </summary>
 /// <param name="stream">The stream containing the image to encode into a data URI.</param>
 /// <param name="imageFormat">The format of the image, which controls the mime type.</param>
 /// <returns>A data URI containing the content of the image.</returns>
 public static string ImageToDataUri(Stream stream, CesiumImageFormat imageFormat)
 {
     string mimeType = GetMimeTypeFromCesiumImageFormat(imageFormat);
     return BuildDataUri(mimeType, stream);
 }
Beispiel #14
0
        public static string ImageToDataUri([NotNull] Stream stream, CesiumImageFormat imageFormat)
        {
            string mimeType = GetMimeTypeFromCesiumImageFormat(imageFormat);

            return(StreamToDataUri(stream, mimeType));
        }
Beispiel #15
0
        /// <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));
        }