Imgur.Imgur.UploadImage C# (CSharp) Method

UploadImage() public method

public UploadImage ( Image img ) : void
img Image
return void
        public void UploadImage(Image img)
        {
            Icon defIcon = (Icon)Tray.Icon.Clone();
            Tray.Icon = new Icon("Addons/Imgur/Icon.ico");

            MemoryStream ms = new MemoryStream();

            ImageFormat format = ImageFormat.Png;
            string formatStr = imageFormat.ToLower();

            switch (formatStr) {
                case "png": format = ImageFormat.Png; break;
                case "jpg": format = ImageFormat.Jpeg; break;
                case "gif": format = ImageFormat.Gif; break;
            }

            this.ImagePipeline(img);

            img.Save(ms, format);

            if (jpegCompression) {
                if (ms.Length / 1000 > jpegCompressionFilesize) {
                    ms.Dispose();
                    ms = new MemoryStream();

                    // Set up the encoder, codec and params
                    System.Drawing.Imaging.Encoder jpegEncoder = System.Drawing.Imaging.Encoder.Compression;
                    ImageCodecInfo jpegCodec = this.GetEncoder(ImageFormat.Jpeg);
                    EncoderParameters jpegParams = new EncoderParameters();
                    jpegParams.Param[0] = new EncoderParameter(jpegEncoder, jpegCompressionRate);

                    // Now save it with the new encoder
                    img.Save(ms, jpegCodec, jpegParams);

                    // And make sure the filename gets set correctly (for the Imgur addon this is only for the backups)
                    formatStr = "jpg";
                }
            }

            string url = this.UploadToImgur(ms, img.Width, img.Height);
            img.Dispose();

            if (url != "CANCELED" && url != "")
                this.Backup(ms.GetBuffer(), url.Split('/', '\\').Last());
            else
                this.Backup(ms.GetBuffer(), this.RandomFilename(5) + "." + formatStr);

            if (url != "CANCELED") {
                if (url != "") {
                    this.SetClipboardText(url);
                    Tray.ShowBalloonTip(1000, "Upload success!", "Image uploaded to Imgur and URL copied to clipboard.", ToolTipIcon.Info);
                } else {
                    this.ProgressBar.Done();
                    Tray.ShowBalloonTip(1000, "Upload failed!", "Something went wrong, probably on Imgur's side. Try again.", ToolTipIcon.Error);
                }
            }

            Tray.Icon = defIcon;
        }