예제 #1
0
 private static void TestPresenceOfPNGOptimizer()
 {
     try
     {
         string lastError = PngOptimizerDll.GetLastErrorString();
         optimizerPresent = true;
     }
     catch (DllNotFoundException)
     {
         optimizerPresent = false;
     }
 }
예제 #2
0
        private static byte[] OptimizePNGByteArray(byte[] input)
        {
            byte[] result     = new byte[input.Length + 400000]; // As seen in the test app for PNG optimizer DLL
            int    resultSize = 0;
            bool   optimized  = PngOptimizerDll.OptimizeFileMem(input, input.Length, result, result.Length, out resultSize);

            if (optimized && resultSize < input.Length)
            {
                byte[] optimizedPNG = new byte[resultSize];
                Array.Copy(result, optimizedPNG, resultSize);
                return(optimizedPNG);
            }
            else
            {
                return(input);
            }
        }