/// <summary> /// Downloads an image from Imgur /// </summary> /// <param name="I">Imgur image</param> /// <param name="Size">Image size</param> /// <param name="AllowVideo">Allow video files</param> /// <returns>Image data</returns> /// <remarks>If <paramref name="AllowVideo"/> is <see cref="false"/>, it will use <see cref="ImgurImageSize.HugeThumbnail"/> for video files</remarks> public static byte[] GetImage(ImgurImage I, ImgurImageSize Size, bool AllowVideo) { using (WebClient WC = new WebClient()) { if (AllowVideo || !I.type.ToLower().StartsWith("video/")) { return(WC.DownloadData(I.GetImageUrl(Size))); } return(WC.DownloadData(I.GetImageUrl(Size == ImgurImageSize.Original ? ImgurImageSize.HugeThumbnail : Size))); } }
//unknown data types //public ? vote { get; set; } //public ? nsfw { get; set; } //public ? section { get; set; } /// <summary> /// Gets the full image URL according to the given size parameter /// </summary> /// <param name="Size">Size parameter</param> /// <returns>Image url</returns> public Uri GetImageUrl(ImgurImageSize Size = ImgurImageSize.Original) { string s; string ext = link.Split('.').Last(); switch (Size) { case ImgurImageSize.Original: s = ""; break; case ImgurImageSize.BigSquare: s = "b"; break; case ImgurImageSize.HugeThumbnail: s = "h"; break; case ImgurImageSize.LargeThumbnail: s = "l"; break; case ImgurImageSize.MediumThumbnail: s = "m"; break; case ImgurImageSize.SmallSquare: s = "s"; break; case ImgurImageSize.SmallThumbnail: s = "t"; break; default: throw new ArgumentException("Size is not a valid enumeration value"); } return(new Uri($"https://i.imgur.com/{id}{s}.{ext}")); }