Jump to content

antond

Newbies
  • Posts

    2
  • Joined

  • Last visited

Posts posted by antond

  1. P.S.:

    the best way to find a path to the “optipng.exe” executable is to find a path to currentAssembly.

    Besause on my work machine I have no access to HKLM registry, so no path is stored there, and sometimes current directory is changed.

    Also, I recomment to use string.Format method to create an argument string.

    To sum up, lines 90-107 of OptiPngFileType.cs should be changed from

    if (token.Optimize) {
       Process optimize = new Process {
           StartInfo = {
               Arguments = "\"" + tempFile + "\"" + " -o" + token.Compression + " -i" + (token.Interlace ? "1" : "0"),
               WindowStyle = ProcessWindowStyle.Minimized
           }
       };
       string startDir;
       try {
           startDir = (string)Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("Paint.NET").GetValue("TARGETDIR");
       } catch (NullReferenceException) {
           startDir = Environment.CurrentDirectory;
       }
       optimize.StartInfo.FileName = Path.Combine(Path.Combine(startDir, "FileTypes"), "optipng.exe");
       optimize.Start();
       optimize.WaitForExit();
       optimize.Dispose();
    }

    to

    if (token.Optimize) {
       Process optimize = new Process {
           StartInfo = {
               UseShellExecute = false,
               CreateNoWindow = true,
               Arguments = string.Format("\"{0}\" -o{1} -i{2}", tempFile, token.Compression, token.Interlace ? "1" : "0")
           }
       };
       string startDir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
       optimize.StartInfo.FileName = Path.Combine(startDir, "optipng.exe");
       optimize.Start();
       optimize.WaitForExit();
       optimize.Dispose();
    }
    

    btw, reference to Microsoft.Win32 can be thrown away now.

  2. I want ot submit a patch.

    To get rid of annoying window, appearing each time you change some settings, or saving file,

    change lines 92—95 of OptiPngFileType.cs

    from

          StartInfo = {
                               Arguments = "\"" + tempFile + "\"" + " -o" + token.Compression + " -i" + (token.Interlace ? "1" : "0"),
                               WindowStyle = ProcessWindowStyle.Minimized
                           }

    to

                            StartInfo = {
                               UseShellExecute = false,
                               CreateNoWindow = true,
                               Arguments = "\"" + tempFile + "\"" + " -o" + token.Compression + " -i" + (token.Interlace ? "1" : "0")
                           }

×
×
  • Create New...