예제 #1
0
        /// <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;
            }
        }
예제 #2
0
        /// <summary>
        /// 一括処理対象のリストを取得します。
        /// </summary>
        /// <returns></returns>
        private List <Plugins.BatchTargetImage> getBatchTargetList()
        {
            var retList       = new List <Plugins.BatchTargetImage>();
            var thumbNailList = this.tnvMain.GetAllThumbNails();

            foreach (var thumb in thumbNailList)
            {
                var item = new Plugins.BatchTargetImage
                {
                    FilePath = thumb.ImageFilePath,
                    Selected = thumb.Selected
                };

                retList.Add(item);
            }

            return(retList);
        }
예제 #3
0
 /// <summary>
 /// プラグインの処理を実行します。
 /// </summary>
 /// <param name="target">処理対象のイメージを表すBatchTargetImage</param>
 /// <returns>プラグインの処理結果を表すBatchTargetImageのリスト。</returns>
 public abstract List <BatchTargetImage> Execute(BatchTargetImage target);