/// <summary>
        /// Jpeg保存用のパラメータリストを取得します。
        /// </summary>
        /// <param name="settings">プラグインの設定を表すPluginSettingBase。</param>
        /// <returns>Jpeg保存用のパラメータリストを表すEncoderParameters。</returns>
        private static EncoderParameters getJpegSavedParameterList(PluginSettingBase settings)
        {
            var paramList = new EncoderParameters(1);
            var param     = new EncoderParameter(Encoder.Quality, (long)settings.JpegSavedQuality);

            paramList.Param[0] = param;

            return(paramList);
        }
        /// <summary>
        /// イメージを保存します。
        /// </summary>
        /// <param name="target">保存対象のイメージを表すBatchTargetImage。</param>
        /// <param name="settings">プラグインの設定を表すPluginSettingBase。</param>
        /// <param name="finisherEnabled">保存処理が有効かを表すbool。</param>
        public static void SaveImage(BatchTargetImage target, PluginSettingBase settings, bool finisherEnabled)
        {
            // 保存機能無効の場合は抜ける
            if (!finisherEnabled)
            {
                return;
            }

            // コーデックを取得
            var codec = DefaultImageWriter.getJpegCodec();

            if (codec == null)
            {
                target.HasError    = true;
                target.ErrorNumber = (int)PluginError.ImageCodecNotFound;

                return;
            }
            // 同名ファイルはスキップ
            if (settings.IsSkipSameFileName)
            {
                if (File.Exists(target.FilePath))
                {
                    target.HasError    = true;
                    target.ErrorNumber = (int)PluginError.ExistsSameFileName;

                    return;
                }
            }

            try
            {
                if (settings.SaveJpeg)
                {
                    target.TargetImage.Save(target.FilePath, codec, DefaultImageWriter.getJpegSavedParameterList(settings));
                }
                else
                {
                    target.TargetImage.Save(target.FilePath, ImageFormat.Bmp);
                }
            }
            finally
            {
                target.TargetImage.Dispose();
                target.TargetImage = null;
            }
        }