Пример #1
0
        /// <summary>
        /// Load image from URL to ImageVObject.
        /// </summary>
        /// <param name="imageUri">URL to image</param>
        /// <param name="actualSize">If true, set size of ImageVObject the same as size of loaded image.
        /// Not applicable if downloadToCache is false.</param>
        /// <param name="preserveAspectRatio">If true, decrease width or height to save aspect ratio of loaded image. Not applicable if actualSize parameter is true or downloadToCache is false.</param>
        public void LoadImageFromRemoteUrl(Uri imageUri, bool actualSize, bool preserveAspectRatio)
        {
            NeedToDownloadImage = false;

            try
            {
                if (Configuration.Instance.AllowDownloadImageToCache)
                {
                    var client = new WebClient();

                    try
                    {
                        var webStream = client.OpenRead(imageUri);

                        LoadImage(webStream, actualSize, preserveAspectRatio);
                    }
                    catch (WebException ex)
                    {
                        throw ExceptionFactory.BadRequest(imageUri.AbsoluteUri, ex);
                    }
                }
                else
                {
                    throw ExceptionFactory.DownloadDeny();
                }
            }
            catch (Exception ex)
            {
                throw ExceptionFactory.CanNotDownloadImage(ex);
            }
        }