public void CompressBlob(ImageData image)
        {
            byte[] originalImage;
            using (var memoryStream = new MemoryStream())
            {
                image.BinaryData.OpenRead().CopyTo(memoryStream);
                originalImage = memoryStream.ToArray();
            }

            byte[] compressedResult = {};
            switch (image.MimeType)
            {
            case "image/jpeg":
                compressedResult = _imageCompressor.MakeCompressedJpg(originalImage);
                break;

            case "image/png":
                compressedResult = _imageCompressor.MakeCompressedPng(originalImage);
                break;

            default:
                _log.Error("!unknown file:" + image.MimeType);
                break;
            }

            if (ImageCompressor.OptimizedImagesCount % 50 == 0 && ImageCompressor.OptimizedImagesCount != 0)
            {
                OnStatusChanged($"Updated  {ImageCompressor.OptimizedImagesCount}...");
            }

            if (compressedResult == null)
            {
                return;
            }

            //Create the Compressed Blob.
            var writableImage = image.CreateWritableClone() as ImageFile;

            if (writableImage != null)
            {
                var blob = _blobResolver.CreateBlob(writableImage.BinaryDataContainer, Path.GetExtension(image.Name));
                using (var s = blob.OpenWrite())
                {
                    var b = new BinaryWriter(s);
                    b.Write(compressedResult);
                    b.Flush();
                }

                writableImage.BinaryData = blob;
                _writeRepo.Save(writableImage, SaveAction.Publish, AccessLevel.NoAccess);
            }
        }