private void assembleWebP(string tempPath, string outputFilePath)
        {
            try
            {
                onAssemblyStarted(ugoiraPath, ugoiraTitleBackup, ugoiraPosition, ugoiraCount);

                List <string> args = new List <string>();

                foreach (JToken frame in frames)
                {
                    string frameFileName = frame[FileManager.ugokuFrameFileInfo].ToString();
                    int    frameDelay    = int.Parse(frame[FileManager.ugokuFrameDelayInfo].ToString());

                    frameFileName  = frameFileName.Substring(0, frameFileName.LastIndexOf('.'));
                    frameFileName += FileManager.extensionSeparator + webPExtension;

                    args.Add("-frame");
                    args.Add(Path.Combine(tempPath, frameFileName));
                    args.Add("+" + frameDelay);
                }
                args.Add("-o");
                args.Add(outputFilePath);

                WebPLibraryWrapper.callWebMux(args.ToArray());

                onAssemblyPerformed(ugoiraPath, ugoiraTitleBackup, ugoiraPosition, ugoiraCount);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e.ToString());
                Console.Error.WriteLine();

                onAseemblyFailed(ugoiraPath, ugoiraTitleBackup, ugoiraPosition, ugoiraCount);
            }
        }
        private void convertToWebP(string tempPath)
        {
            try
            {
                onConversionStarted(ugoiraTitleBackup, ugoiraPosition, ugoiraCount);

                if (Directory.Exists(tempPath))
                {
                    foreach (string file in Directory.GetFiles(tempPath))
                    {
                        File.Delete(file);
                    }

                    foreach (string directory in Directory.GetDirectories(tempPath))
                    {
                        Directory.Delete(directory, true);
                    }
                }
                else
                {
                    Directory.CreateDirectory(tempPath);
                }

                int count = 0;
                foreach (JToken frame in frames)
                {
                    string        frameFileName = frame[FileManager.ugokuFrameFileInfo].ToString();
                    List <string> args          = new List <string>();

                    args.Add(Path.Combine(ugoiraPath, frameFileName));
                    args.Add("-o");
                    args.Add(Path.Combine(tempPath, Path.GetFileNameWithoutExtension(frameFileName) + FileManager.extensionSeparator + webPExtension));
                    args.AddRange(cwebpArgs);

                    onConversionProcessing(ugoiraTitleBackup, ugoiraPosition, ugoiraCount, ++count, frames.Count);

                    WebPLibraryWrapper.callWebPEncoder(args.ToArray());
                }

                onConversionPerformed(ugoiraTitleBackup, ugoiraPosition, ugoiraCount);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e.ToString());
                Console.Error.WriteLine();

                onConversionFailed(ugoiraTitleBackup, ugoiraPosition, ugoiraCount);
            }
        }