/// <summary> /// Saves image to specific path with specified quality /// </summary> public static void Save(ISurface surface, string fullPath, bool allowOverwrite, SurfaceOutputSettings outputSettings, bool copyPathToClipboard) { fullPath = FilenameHelper.MakeFqFilenameSafe(fullPath); var path = Path.GetDirectoryName(fullPath); // check whether path exists - if not create it if (path != null) { var di = new DirectoryInfo(path); if (!di.Exists) { Directory.CreateDirectory(di.FullName); } } if (!allowOverwrite && File.Exists(fullPath)) { var throwingException = new ArgumentException("File '" + fullPath + "' already exists."); throwingException.Data.Add("fullPath", fullPath); throw throwingException; } Log.Debug().WriteLine("Saving surface to {0}", fullPath); // Create the stream and call SaveToStream using (var stream = new FileStream(fullPath, FileMode.Create, FileAccess.Write)) { SaveToStream(surface, stream, outputSettings); } if (copyPathToClipboard) { ClipboardHelper.SetClipboardData(fullPath); } }
/// <summary> /// Saves image to specific path with specified quality /// </summary> public static void Save(ISurface surface, string fullPath, bool allowOverwrite, SurfaceOutputSettings outputSettings, bool copyPathToClipboard) { fullPath = FilenameHelper.MakeFqFilenameSafe(fullPath); var path = Path.GetDirectoryName(fullPath); // check whether path exists - if not create it if (path != null) { var di = new DirectoryInfo(path); if (!di.Exists) { Directory.CreateDirectory(di.FullName); } } if (!allowOverwrite && File.Exists(fullPath)) { var throwingException = new ArgumentException("File '" + fullPath + "' already exists."); throwingException.Data.Add("fullPath", fullPath); throw throwingException; } Log.Debug().WriteLine("Saving surface to {0}", fullPath); // Create the stream and call SaveToStream using (var stream = new FileStream(fullPath, FileMode.Create, FileAccess.Write)) { SaveToStream(surface, stream, outputSettings); } // TODO: This should not be done here, remove this!! if (copyPathToClipboard) { using (var clipboardAccessToken = ClipboardNative.Access()) { clipboardAccessToken.ClearContents(); // TODO: File?? clipboardAccessToken.SetAsUnicodeString(fullPath); } } }