public bool SavePresetUsingDialog([CanBeNull] string key, [NotNull] PresetsCategory category, [CanBeNull] byte[] data, [CanBeNull] ref string filename) { if (data == null) { return(false); } var presetsDirectory = EnsureDirectory(category); if (filename != null && !FileUtils.IsAffectedBy(filename, presetsDirectory)) { filename = Path.Combine(presetsDirectory, Path.GetFileName(filename)); } filename = FileRelatedDialogs.Save(new SaveDialogParams { Filters = { new DialogFilterPiece("Presets", "*" + category.Extension) }, InitialDirectory = presetsDirectory, DetaultExtension = category.Extension, CustomPlaces = { new FileDialogCustomPlace(presetsDirectory) } }, filename); if (filename == null) { return(false); } Logging.Debug("presetsDirectory=" + presetsDirectory); Logging.Debug("filename=" + filename); if (!FileUtils.IsAffectedBy(filename, presetsDirectory)) { if (ModernDialog.ShowMessage(ToolsStrings.Presets_ChooseFileInInitialDirectory, ToolsStrings.Common_CannotDo_Title, MessageBoxButton.OKCancel) == MessageBoxResult.OK) { return(SavePresetUsingDialog(key, category, data, ref filename)); } return(false); } File.WriteAllBytes(filename, data); Logging.Debug("Preset saved as " + filename); if (key != null) { PresetSaved?.Invoke(this, new PresetSavedEventArgs(key, filename)); } return(true); }
public static void CreateNeutralLut(int size) { var width = size * size; var bitmap = new Bitmap(width, size, PixelFormat.Format24bppRgb); var bits = bitmap.LockBits(new Rectangle(0, 0, width, size), ImageLockMode.WriteOnly, bitmap.PixelFormat); var ptr = bits.Scan0; var row = bits.Stride * bitmap.Height; var data = new byte[row]; var m = 255d / (size - 1); for (var g = 0; g < size; g++) { var o = g * width * 3; var b = 0; var r = 0; for (var i = 0; i < width; i++) { var u = o + i * 3; data[u] = (byte)(r * m); data[u + 1] = (byte)(g * m); data[u + 2] = (byte)(b * m); if (++b == size) { b = 0; r++; } } } Marshal.Copy(data, 0, ptr, row); bitmap.UnlockBits(bits); var filename = FileRelatedDialogs.Save(new SaveDialogParams { Filters = { DialogFilterPiece.ImageFiles }, DetaultExtension = ".png", DirectorySaveKey = "neutralColorLut", DefaultFileName = "Neutral color grading.png" }); if (filename == null) { return; } bitmap.Save(filename); }
private static string GetPackedFilename(string baseName, string extension, string version) { var last = $@"-{DateTime.Now:yyyyMMdd-HHmmss}{extension}"; var name = $"{baseName}-{version ?? "0"}{last}"; if (name.Length > 160) { name = name.Substring(0, 160 - last.Length) + last; } return(FileRelatedDialogs.Save(new SaveDialogParams { Title = $"Pack {baseName}", Filters = { extension == @".zip" ? DialogFilterPiece.ZipFiles : extension == @".exe" ? DialogFilterPiece.Applications : extension == @".tar.gz" ? DialogFilterPiece.TarGZipFiles : DialogFilterPiece.Archives }, DetaultExtension = extension, DirectorySaveKey = "packDir", DefaultFileName = name })); }