public byte[] GetBytes(string requestedFormat = null) { if (_transformations.Count > 0) { ApplyTransformationsAndSetProperties(); } ImageFormat requestedImageFormat = null; if (!String.IsNullOrEmpty(requestedFormat)) { // This will throw if image format is incorrect. requestedImageFormat = GetImageFormat(requestedFormat); } requestedImageFormat = requestedImageFormat ?? _initialFormat; Debug.Assert(requestedImageFormat != null, "Initial format can never be null"); if (requestedImageFormat.Equals(this._currentFormat)) { return((byte[])_content.Clone()); } // Conversion from one format to another using (MemoryStream sourceBuffer = new MemoryStream(_content)) { using (Image image = Image.FromStream(sourceBuffer)) { // if _properties are not initialized that means image did not go through any // transformations yet and original byte array contains all metadata available if (_properties != null) { WebImage.CopyMetadata(_properties, image); } using (MemoryStream destinationBuffer = new MemoryStream()) { image.Save(destinationBuffer, requestedImageFormat); return(destinationBuffer.ToArray()); } } } }