Ejemplo n.º 1
0
        /// <summary>
        /// 処理後のイメージ情報リストに変換します。
        /// </summary>
        /// <param name="leftOrTop">左側又は上側のBatchTargetImage。</param>
        /// <param name="rightOrBottom">右側又は下側のBatchTargetImage。</param>
        /// <param name="finisherEnabled">保存処理が有効かを表すbool。</param>
        /// <returns>処理後のBatchTargetImageリスト</returns>
        private List <BatchTargetImage> toBatchTargetImageList(BatchTargetImage leftOrTop, BatchTargetImage rightOrBottom, bool finisherEnabled)
        {
            DefaultImageWriter.SaveImage(leftOrTop, this.Settings, finisherEnabled);
            DefaultImageWriter.SaveImage(rightOrBottom, this.Settings, finisherEnabled);

            return(this.Settings.ToBatchTargetImageList(leftOrTop, rightOrBottom));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// トリミングされたイメージを取得します。
        /// </summary>
        /// <param name="rect">トリミングする矩形を表すRectangle。</param>
        /// <returns>トリミングされたImage。</returns>
        private Image getTrimmingImage(Rectangle rect)
        {
            var retImage = new BatchTargetImage();

            using (var bmp = new Bitmap(this.TargetImage))
            {
                return(bmp.Clone(rect, bmp.PixelFormat));
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 非選択ファイルをコピーします。
        /// </summary>
        /// <param name="target">コピー対象のファイルを表すBatchTargetImage。</param>
        /// <returns>コピーした非選択ファイルを表すBatchTargetImage。</returns>
        private BatchTargetImage copyUnselectedFile(BatchTargetImage target)
        {
            var retTarget = this.toUnselectedTarge(target);

            // 非選択ファイルをコピー
            File.Copy(target.FilePath, retTarget.FilePath, Settings.IsSkipSameFileName == false);

            return(retTarget);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 非選択ファイルを新規ファイルとして保存する。
        /// </summary>
        /// <param name="target">元イメージのBatchTargetImage。</param>
        /// <returns>処理後の非選択ファイルを表すBatchTargetImage。</returns>
        private BatchTargetImage createNewFileFromUnselectedFile(BatchTargetImage target)
        {
            var newTarget = this.toUnselectedTarge(target);

            newTarget.TargetImage = target.GetTargetImage();
            DefaultImageWriter.SaveImage(newTarget, this.Settings, this.SelectedFilesFinisherEnabled);

            return(newTarget);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Splitterのファクトリメソッド。
        /// </summary>
        /// <param name="srcImage">処理対象の元BatchTargetImage。</param>
        /// <returns>Splitterのインスタンス。</returns>
        internal Splitter CreateSplitter(BatchTargetImage srcImage)
        {
            switch (this.PageSplitType)
            {
            case SplitType.Vertical1_2:
            case SplitType.Vertical2_1:
                return(new VerticalSplitter(srcImage, this));

            case SplitType.Horizontal1_2:
            case SplitType.Horizontal2_1:
                return(new HorizontalSplitter(srcImage, this));

            default:
                break;
            }

            return(null);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 非選択ファイルを処理後のBatchTargetImageに変換します。
        /// </summary>
        /// <param name="srcTarget">元イメージのBatchTargetImage。</param>
        /// <returns>処理後の非選択ファイルを表すBatchTargetImage。</returns>
        private BatchTargetImage toUnselectedTarge(BatchTargetImage srcTarget)
        {
            var ext = string.Empty;

            if (this.Settings.UnselectedFilesOperation == UnselectedFilesOperation.CopyFiles)
            {
                ext = srcTarget.Extension;
            }
            else
            {
                ext = this.Settings.GetFileExtension();
            }

            var fileName = Path.GetFileNameWithoutExtension(srcTarget.FileName) + ext;
            var destPath = Path.Combine(this.Settings.DestinatedFolderPath, fileName);

            return(new BatchTargetImage {
                FilePath = destPath, Selected = srcTarget.Selected
            });
        }
Ejemplo n.º 7
0
        /// <summary>
        /// プラグインの処理を実行します。
        /// </summary>
        /// <param name="target">処理対象のイメージを表すBatchTargetImage</param>
        /// <returns>プラグインの処理結果を表すBatchTargetImageのリスト。</returns>
        public override List <BatchTargetImage> Execute(BatchTargetImage target)
        {
            var retList = new List <BatchTargetImage>();

            if (target.Selected)
            {               // 選択ファイル
                using (var splitter = this.Settings.CreateSplitter(target))
                {
                    retList.AddRange(splitter.Split(this.SelectedFilesFinisherEnabled));
                }
            }
            else
            {                   // 非選択ファイル
                if (this.Settings.IsTargetForUnselectedFiles)
                {
                    switch (this.Settings.UnselectedFilesOperation)
                    {
                    case UnselectedFilesOperation.CopyFiles:
                        // コピー
                        retList.Add(this.copyUnselectedFile(target));
                        break;

                    case UnselectedFilesOperation.CreatNewFiles:
                        // 新規保存
                        retList.Add(this.createNewFileFromUnselectedFile(target));
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    retList.Add(target);
                }
            }

            return(retList);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 一括処理対象イメージのリストに変換します。
        /// </summary>
        /// <param name="leftOrTop">左側又は上側のイメージを表すBatchTargetImage。</param>
        /// <param name="rightOrBottom">右側又は下側のイメージを表すBatchTargetImage。</param>
        /// <returns>BatchTargetImageのリスト。</returns>
        public List <BatchTargetImage> ToBatchTargetImageList(BatchTargetImage leftOrTop, BatchTargetImage rightOrBottom)
        {
            var retList = new List <BatchTargetImage>();

            switch (this.PageSplitType)
            {
            case SplitType.Vertical1_2:
            case SplitType.Horizontal1_2:
                retList.Add(leftOrTop);
                retList.Add(rightOrBottom);
                break;

            case SplitType.Vertical2_1:
            case SplitType.Horizontal2_1:
                retList.Add(rightOrBottom);
                retList.Add(leftOrTop);
                break;

            default:
                break;
            }

            return(retList);
        }
Ejemplo n.º 9
0
 /// <summary>
 /// コンストラクタ。
 /// </summary>
 /// <param name="srcImage">処理対象の元BatchTargetImage。</param>
 /// <param name="settings">分割設定を表すImageSplitSettings。</param>
 public VerticalSplitter(BatchTargetImage srcImage, ImageSplitSettings settings) : base(srcImage, settings)
 {
 }
Ejemplo n.º 10
0
 /// <summary>
 /// コンストラクタ。
 /// </summary>
 /// <param name="srcImage">処理対象の元BatchTargetImage。</param>
 /// <param name="settings">分割設定を表すImageSplitSettings。</param>
 public Splitter(BatchTargetImage srcImage, ImageSplitSettings settings) : base()
 {
     this.img      = srcImage.GetTargetImage();
     this.srcImage = srcImage;
     this.settings = settings;
 }
Ejemplo n.º 11
0
 /// <summary>
 /// コンストラクタ。
 /// </summary>
 /// <param name="srcImage">処理対象の元BatchTargetImage。</param>
 /// <param name="settings">分割設定を表すImageSplitSettings。</param>
 public HorizontalSplitter(BatchTargetImage srcImage, ImageSplitSettings settings) : base(srcImage, settings)
 {
 }