public void Resize(string source, string destination, int height) { try { if (!_diskProvider.CanUseGDIPlus()) { throw new Exception("Can't resize without libgdiplus."); } using (var sourceStream = _diskProvider.OpenReadStream(source)) { using (var outputStream = _diskProvider.OpenWriteStream(destination)) { var settings = new Instructions(); settings.Height = height; var job = new ImageJob(sourceStream, outputStream, settings); ImageBuilder.Current.Build(job); } } } catch { if (_diskProvider.FileExists(destination)) { _diskProvider.DeleteFile(destination); } throw; } }