/// <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; } }
/// <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); }
/// <summary> /// プラグインの処理を実行します。 /// </summary> /// <param name="target">処理対象のイメージを表すBatchTargetImage</param> /// <returns>プラグインの処理結果を表すBatchTargetImageのリスト。</returns> public abstract List <BatchTargetImage> Execute(BatchTargetImage target);