Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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
            }));
        }