Ejemplo n.º 1
0
        public static IEnumerable <XElement> MetaList(string containerName, IList <Metadata> metaList, string granularity)
        {
            if (string.IsNullOrEmpty(containerName) || metaList == null || metaList.Count == 0 || string.IsNullOrEmpty(granularity))
            {
                yield break;
            }

            foreach (var metaItem in metaList)
            {
                switch (FormatList.Int2Format(metaItem.MdFormat))
                {
                case Enums.MetadataFormats.DublinCore:
                    yield return(new XElement(containerName, DublinCore.Encode(metaItem, granularity)));

                    break;

                case Enums.MetadataFormats.PanSimple:
                    yield return(new XElement(containerName, PanSimple.Encode(metaItem, granularity)));

                    break;

                case Enums.MetadataFormats.Provenance:
                    yield return(new XElement(containerName, Provenance.Encode(metaItem, granularity)));

                    break;

                // TODO: Add format here

                case Enums.MetadataFormats.None:
                default:
                    break;
                }
            }
        }
Ejemplo n.º 2
0
        public static XElement Metadata(string containerName, Metadata metadata, string granularity)
        {
            if (string.IsNullOrEmpty(containerName) || metadata == null || string.IsNullOrEmpty(granularity))
            {
                return(null);
            }

            switch (FormatList.Int2Format(metadata.MdFormat))
            {
            case Enums.MetadataFormats.DublinCore:
                return(new XElement(containerName, DublinCore.Encode(metadata, granularity)));

            case Enums.MetadataFormats.PanSimple:
                return(new XElement(containerName, PanSimple.Encode(metadata, granularity)));

            case Enums.MetadataFormats.Provenance:
                return(new XElement(containerName, Provenance.Encode(metadata, granularity)));

            // TODO: Add format here

            case Enums.MetadataFormats.None:
            default:
                return(null);
            }
        }
Ejemplo n.º 3
0
        // GET: Format
        public ActionResult Index()
        {
            FormatList formats = new FormatList();

            formats.Load();
            return(View(formats));
        }
Ejemplo n.º 4
0
        public void ValidateFormatList(string[] formats)
        {
            // check combo box
            foreach (var item in formats)
            {
                if (!FormatList.Contains(item))
                {
                    FormatList.Add(item);
                }
            }

            // remove blank
            for (int i = 0; i < FormatList.Count; i++)
            {
                if (String.IsNullOrWhiteSpace(FormatList[i]))
                {
                    FormatList.RemoveAt(i);
                    --i;
                }
            }

            // trim the list
            while (FormatList.Count > Properties.Settings.Default.FormatListCount)
            {
                FormatList.RemoveAt(0);
            }
        }
Ejemplo n.º 5
0
        private void OnCategorySelectionChanged()
        {
            if (string.IsNullOrWhiteSpace(CategorySelection))
            {
                return;
            }

            var list = GetFormatList(CategorySelection);

            if (list == null)
            {
                return;
            }

            list.Add(Properties.Resources.CustomString);

            FormatList = list;

            if (!FormatList.Contains(FormatSelection) || FormatSelection == Properties.Resources.CustomString)
            {
                // update format selection
                FormatSelection = FormatList.FirstOrDefault();
            }

            RaisePropertyChanged(() => FormatList);

            OutputCoordItem.CType = GetCoordinateType();
            OutputCoordItem.Name  = OutputCoordItem.CType.ToString();
        }
Ejemplo n.º 6
0
 internal static uint GetBlockHeight(Texture texture)
 {
     if (FormatList.ContainsKey(texture.Format))
     {
         return(FormatList[texture.Format].BlockHeight);
     }
     return(0);
 }
Ejemplo n.º 7
0
 internal static uint GetBytesPerPixel(Texture texture)
 {
     if (FormatList.ContainsKey(texture.Format))
     {
         return(FormatList[texture.Format].BytesPerPixel);
     }
     return(0);
 }
Ejemplo n.º 8
0
        public void LoadTest()
        {
            FormatList formats = new FormatList();

            formats.Load();

            int expected = 3;
            int actual   = formats.Count;

            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 9
0
        public void Write(FileWriter writer)
        {
            byte format = FormatList.FirstOrDefault(x => x.Value == Format).Key;

            writer.Write(format);
            writer.Write(Padding);
            writer.Write(Width);
            writer.Write(Height);
            writer.Align(32);
            writer.Write(ImageData);
        }
Ejemplo n.º 10
0
        public WiiUSwizzle(TexFormat format)
        {
            Format       = FormatList.FirstOrDefault(x => x.Value == format).Key;
            OutputFormat = format;

            AAMode           = GX2.GX2AAMode.GX2_AA_MODE_1X;
            TileMode         = GX2.GX2TileMode.MODE_2D_TILED_THIN1;
            ResourceFlags    = GX2.GX2RResourceFlags.GX2R_BIND_TEXTURE;
            SurfaceDimension = GX2.GX2SurfaceDimension.DIM_2D;
            SurfaceUse       = GX2.GX2SurfaceUse.USE_COLOR_BUFFER;
            Alignment        = 0;
            Pitch            = 0;
        }
Ejemplo n.º 11
0
            public void Write(FileWriter writer)
            {
                TextureFormat format = FormatList.FirstOrDefault(x => x.Value == PicaFormat).Key;

                writer.Write(ImageData.Length);
                writer.Write(MaxLevel);
                writer.Write(Unknown);
                writer.Write((ushort)Width);
                writer.Write((ushort)Height);
                writer.Write(format, true);
                writer.Write(DataOffset);
                writer.WriteString(Name, 16);
            }
Ejemplo n.º 12
0
        public void DeleteTest()
        {
            FormatList formats = new FormatList();

            formats.Load();

            //Find the format with the description testingformat
            Format format = formats.FirstOrDefault(f => f.Description == "UpdatedFormat");

            //Delete it
            int result = format.Delete();

            Assert.IsTrue(result == 1);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Validation if file is valid format
        /// </summary>
        /// <param name="arg">drag n drop event</param>
        /// <returns></returns>
        private bool CanAddImage(DragEventArgs arg)
        {
            var g = arg.Data.GetDataPresent(DataFormats.FileDrop);

            string[] files = (string[])arg.Data.GetData(DataFormats.FileDrop);
            for (int i = 0; i < files.Length; i++)
            {
                FileInfo info = new FileInfo(files[i]);
                if (!FormatList.Contains(info.Extension.Trim('.').ToUpper()))
                {
                    return(false);
                }
            }
            return(true);
        }
Ejemplo n.º 14
0
        private void SelectFormat(string format)
        {
            var defaultFormat = GetFormatSample(format);

            foreach (var item in FormatList)
            {
                if (item == defaultFormat)
                {
                    FormatSelection = item;
                    return;
                }
            }

            FormatSelection = FormatList.FirstOrDefault();
        }
Ejemplo n.º 15
0
        public ActionResult Get()
        {
            //Initialize Cient
            HttpClient client = InitializeClient();

            //Call the API
            HttpResponseMessage response = client.GetAsync("Format").Result;

            //Deserialize the json
            string  result = response.Content.ReadAsStringAsync().Result;
            dynamic items  = (JArray)JsonConvert.DeserializeObject(result);

            formats = items.ToObject <FormatList>();

            return(View("Index", formats));
        }
Ejemplo n.º 16
0
        void RelatedColumnsList_SelectedIndexChanged(object sender, EventArgs e)
        {
            ListAggregationList.ClearSelection();
            FormatList.ClearSelection();

            Field.Aggregation = AggregationList.SelectedValue;
            AggregationList.ClearSelection();

            Field.ListAttributeAggregation.ColumnName     = RelatedColumnsList.SelectedValue;
            Field.ListAttributeAggregation.AggregateLexem = string.Empty;



            // ListAggregationList.DataBind();
            // FormatList.DataBind();
        }
        private void OnCategorySelectionChanged()
        {
            var selectedCoordinateType = Convert.ToString(SelectedCoordinateType);

            if (string.IsNullOrWhiteSpace(selectedCoordinateType))
            {
                return;
            }

            var list = GetFormatList(selectedCoordinateType);

            if (list == null)
            {
                return;
            }

            if (selectedCoordinateType != CoordinateType.Default.ToString())
            {
                list.Add(CoordinateConversionLibrary.Properties.Resources.CustomString);
            }

            FormatList = list;
            if ((
                    (!FormatList.Contains(FormatSelection) || FormatSelection == CoordinateConversionLibrary.Properties.Resources.CustomString) &&
                    !CoordinateConversionLibraryConfig.AddInConfig.IsCustomFormat)
                )
            {
                // update format selection
                FormatSelection = FormatList.FirstOrDefault();
            }

            RaisePropertyChanged(() => FormatList);

            if (!CoordinateConversionLibraryConfig.AddInConfig.IsCustomFormat)
            {
                Format = GetFormatFromDefaults();
            }
            else
            {
                Format = CoordinateBase.InputCustomFormat;
            }
            RaisePropertyChanged(() => Format);
        }
Ejemplo n.º 18
0
        public void Read(FileReader reader)
        {
            byte format = reader.ReadByte();

            Padding = reader.ReadByte();
            Width   = reader.ReadUInt16();
            Height  = reader.ReadUInt16();
            reader.ReadBytes(26);

            if (!FormatList.ContainsKey(format))
            {
                throw new Exception($"Unknown textue format! {format}");
            }

            Format = FormatList[format];
            var size = Decode_Gamecube.GetDataSize(Format, Width, Height);

            ImageData = reader.ReadBytes(size);
        }
Ejemplo n.º 19
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                formats = new FormatList();
                formats.Load();

                Reload();

                //pretend someone clicked in the ddlFormats, send it with the sender and the e from this event
                ddlFormats_SelectedIndexChanged(sender, e);

                //Load data into the session
                Session["formats"] = formats;
            }
            else
            {
                //is a PostBack, kept in session, get the objects
                formats = (FormatList)Session["formats"];
            }
        }
Ejemplo n.º 20
0
        public ActionConfirmation QueueGenericEmail(string to, string @from, string subject, string body)
        {
            var formatList = new FormatList();

            formatList.Add("Body", body);
            formatList.Add("useremail", from);
            formatList.Add("Subject", subject);


            var email = GenericEmail("GenericEmail", null, null, true);

            if (email == null)
            {
                return(ActionConfirmation.CreateFailure("Email template not found!"));
            }

            email.To      = to;
            email.From    = from;
            email.Body    = formatList.Format(email.Body);
            email.Subject = formatList.Format(email.Subject);

            return(_queueService.Queue(email));
        }
Ejemplo n.º 21
0
        private void OnInputChange(ChangeEventArgs args)
        {
            var v = args?.Value.ToString();

            Value = v;

            if (Options != null)   // Options 参数不为空时,本地过滤选项
            {
                _options.Clear();
                _options = !string.IsNullOrWhiteSpace(v) ? Options.Where(option => FilterOption(v, option)).ToList() : Options.ToList();

                // 默认选中第一个
                if (_options.Count > 0)
                {
                    ToggleState = true;
                }
            }
            else if (FormatList != null)   // FormatList 参数不为空时,按照指定 Format 格式添加选项
            {
                _options.Clear();
                if (!string.IsNullOrWhiteSpace(v))
                {
                    FormatList.ForEach(f => _options.Add(string.Format(f, v)));
                }
                // 默认选中第一个
                if (_options.Count > 0)
                {
                    ToggleState = true;
                }
            }
            else  // 一般模式,从远程获取数据添加选项
            {
                // 此处暂无需处理
            }

            OnChange?.Invoke(v);
        }
        public static void UpdateVisualFormat()
        {
            ListObjFormats.Clear();

            if (OldFormat)
            {
                ActualFormat = _oldFormat;
                foreach (var itemFormat in _oldFormat.ToList())
                {
                    ListObjFormats.Add(new ObjFormat(itemFormat.ToString(), itemFormat.ToString(), 0));
                }
            }
            else
            {
                _newFormat = new object[FormatList.Count];

                foreach (var itemFormat in FormatList)
                {
                    ListObjFormats.Add(new ObjFormat(itemFormat.Name, FormatList.IndexOf(itemFormat) + " - " + itemFormat.Name, itemFormat.BitDepth.Bit - 1));
                    _newFormat[FormatList.IndexOf(itemFormat)] = FormatList.IndexOf(itemFormat) + " - " + itemFormat.Name;
                }
                ActualFormat = _newFormat;
            }
        }
Ejemplo n.º 23
0
        /// <summary>
        /// OCR処理を実施します
        /// </summary>
        /// <param name="InPath">入力パス</param>
        /// <param name="NgPath">NG出力パス</param>
        /// <param name="rePath">OCR変換結果出力パス</param>
        /// <param name="FormatName">書式ファイル名</param>
        /// <param name="fCnt">書式ファイルの件数</param>
        private void ocrMain(string InPath, string NgPath, string rePath, string FormatName, int fCnt)
        {
            IEngine en       = null;            // OCRエンジンのインスタンスを保持
            string  ocr_csv  = string.Empty;    // OCR変換出力CSVファイル
            int     _okCount = 0;               // OCR変換画像枚数
            int     _ngCount = 0;               // フォーマットアンマッチ画像枚数
            string  fnm      = string.Empty;    // ファイル名

            try
            {
                // 指定された出力先フォルダがなければ作成する
                if (System.IO.Directory.Exists(rePath) == false)
                {
                    System.IO.Directory.CreateDirectory(rePath);
                }

                // 指定されたNGの場合の出力先フォルダがなければ作成する
                if (System.IO.Directory.Exists(NgPath) == false)
                {
                    System.IO.Directory.CreateDirectory(NgPath);
                }

                // OCRエンジンのインスタンスの生成・取得
                en = EngineFactory.GetEngine();
                if (en == null)
                {
                    // エンジンが他で取得されている場合は、Release() されるまで取得できない
                    System.Console.WriteLine("SDKは使用中です");
                    return;
                }

                //オーナーフォームを無効にする
                this.Enabled = false;

                //プログレスバーを表示する
                frmPrg frmP = new frmPrg();
                frmP.Owner = this;
                frmP.Show();

                IFormatList FormatList;
                IFormat     Format;
                IField      Field;
                int         nPage;
                int         ocrPage   = 0;
                int         fileCount = 0;

                // フォーマットのロード・設定
                FormatList = en.FormatList;
                FormatList.Add(FormatName);

                // tifファイルの認識
                foreach (string files in System.IO.Directory.GetFiles(InPath, "*.tif"))
                {
                    nPage = 1;
                    while (true)
                    {
                        try
                        {
                            // 対象画像を設定する
                            en.SetBitmap(files, nPage);

                            //プログレスバー表示
                            fileCount++;
                            frmP.Text          = "OCR変換処理実行中 " + fileCount.ToString() + "/" + fCnt.ToString();
                            frmP.progressValue = fileCount * 100 / fCnt;
                            frmP.ProgressStep();
                        }
                        catch (IDRException ex)
                        {
                            // ページ読み込みエラー
                            if (ex.No == ErrorCode.IDR_ERROR_FORM_FILEREAD)
                            {
                                // ページの終了
                                break;
                            }
                            else
                            {
                                // 例外のキャッチ
                                MessageBox.Show("例外が発生しました:Error No ={0:X}", ex.No.ToString());
                            }
                        }

                        //////Console.WriteLine("-----" + strImageFile + "の" + nPage + "ページ-----");
                        // 現在ロードされている画像を自動的に傾き補正する
                        en.AutoSkew();

                        // 傾き角度の取得
                        double angle = en.GetSkewAngle();
                        //////System.Console.WriteLine("時計回りに" + angle + "度傾き補正を行いました");

                        try
                        {
                            // 現在ロードされている画像を自動回転してマッチする番号を取得する
                            Format = en.MatchFormatRotate();
                            int direct = en.GetRotateAngle();

                            //画像ロード
                            RasterCodecs.Startup();
                            RasterCodecs cs = new RasterCodecs();
                            //RasterImage img;

                            // 描画時に使用される速度、品質、およびスタイルを制御します。
                            //RasterPaintProperties prop = new RasterPaintProperties();
                            //prop = RasterPaintProperties.Default;
                            //prop.PaintDisplayMode = RasterPaintDisplayModeFlags.Resample;
                            //leadImg.PaintProperties = prop;

                            RasterImage img = cs.Load(files, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1);

                            RotateCommand rc = new RotateCommand();
                            rc.Angle     = (direct) * 90 * 100;
                            rc.FillColor = new RasterColor(255, 255, 255);
                            rc.Flags     = RotateCommandFlags.Resize;
                            rc.Run(img);
                            //rc.Run(leadImg.Image);

                            //cs.Save(leadImg.Image, files, RasterImageFormat.Tif, 0, 1, 1, 1, CodecsSavePageMode.Overwrite);
                            cs.Save(img, files, RasterImageFormat.CcittGroup4, 0, 1, 1, 1, CodecsSavePageMode.Overwrite);

                            // マッチしたフォーマットに登録されているフィールド数を取得
                            int fieldNum = Format.NumOfFields;
                            int matchNum = Format.FormatNo + 1;
                            //////System.Console.WriteLine(matchNum + "番目のフォーマットがマッチ");
                            int i = 1;
                            ocr_csv = string.Empty;

                            // ファイルの先頭フィールドにファイル番号をセットします
                            ocr_csv = System.IO.Path.GetFileNameWithoutExtension(files) + ",";

                            // ファイルに画像ファイル名フィールドを付加します
                            ocr_csv += System.IO.Path.GetFileName(files);

                            // 認識されたフィールドを順次読み出します
                            Field = Format.Begin();
                            while (Field != null)
                            {
                                //カンマ付加
                                if (ocr_csv != string.Empty)
                                {
                                    ocr_csv += ",";
                                }

                                // 指定フィールドを認識し、テキストを取得
                                string strText = Field.ExtractFieldText();
                                ocr_csv += strText;

                                // 次のフィールドの取得
                                Field = Format.Next();
                                i    += 1;
                            }

                            //出力ファイル
                            System.IO.StreamWriter outFile = new System.IO.StreamWriter(InPath + System.IO.Path.GetFileNameWithoutExtension(files) + ".csv", false, System.Text.Encoding.GetEncoding(932));
                            outFile.WriteLine(ocr_csv);
                            outFile.Close();

                            //OCR変換枚数カウント
                            _okCount++;
                        }
                        catch (IDRWarning ex)
                        {
                            // Engine.MatchFormatRotate() で
                            // フォーマットにマッチしなかった場合の処理
                            if (ex.No == ErrorCode.IDR_WARN_FORM_NO_MATCH)
                            {
                                // NGフォルダへ移動する
                                System.IO.File.Move(files, NgPath + "E" + System.IO.Path.GetFileName(files));

                                //NG枚数カウント
                                _ngCount++;
                            }
                        }

                        ocrPage++;
                        nPage += 1;
                    }
                }

                // いったんオーナーをアクティブにする
                this.Activate();

                // 進行状況ダイアログを閉じる
                frmP.Close();

                // オーナーのフォームを有効に戻す
                this.Enabled = true;

                string        finMessage = string.Empty;
                StringBuilder sb         = new StringBuilder();

                // NGメッセージ
                if (_ngCount > 0)
                {
                    MessageBox.Show("OCR認識を正常に行うことが出来なかった画像があります。確認してください。", "確認", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                // 終了メッセージ
                sb.Clear();
                sb.Append("OCR認識処理が終了しました。");
                sb.Append("引き続き修正確認&受け渡しデータ作成を行ってください。");
                sb.Append(Environment.NewLine);
                sb.Append(Environment.NewLine);
                sb.Append("OK件数 : ");
                sb.Append(_okCount.ToString());
                sb.Append(Environment.NewLine);
                sb.Append("NG件数 : ");
                sb.Append(_ngCount.ToString());
                sb.Append(Environment.NewLine);

                MessageBox.Show(sb.ToString(), "処理終了", MessageBoxButtons.OK, MessageBoxIcon.Information);
                // OCR変換画像とCSVデータをOCR結果出力フォルダへ移動する
                foreach (string files in System.IO.Directory.GetFiles(InPath, "*.*"))
                {
                    System.IO.File.Move(files, rePath + System.IO.Path.GetFileName(files));
                }

                FormatList.Delete(0);
            }
            catch (System.Exception ex)
            {
                // 例外のキャッチ
                string errMessage = string.Empty;
                errMessage += "System例外が発生しました:" + Environment.NewLine;
                errMessage += "必要なDLL等が実行モジュールと同ディレクトリに存在するか確認してください。:" + Environment.NewLine;
                errMessage += ex.Message.ToString();
                MessageBox.Show(errMessage, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            finally
            {
                en.Release();
            }
        }
Ejemplo n.º 24
0
 public static string[] Formats()
 {
     return((string[])FormatList.Clone());
 }
        private void UpdateSample()
        {
            var type = GetCoordinateType();

            switch (type)
            {
            case CoordinateType.DD:
                var dd = new CoordinateDD();

                if (ctdict.ContainsKey(CoordinateType.DD))
                {
                    CoordinateDD.TryParse(ctdict[type], out dd);
                }

                Sample = dd.ToString(Format, new CoordinateDDFormatter());

                break;

            case CoordinateType.DDM:
                var ddm = new CoordinateDDM();

                if (ctdict.ContainsKey(type))
                {
                    CoordinateDDM.TryParse(ctdict[type], out ddm);
                }

                Sample = ddm.ToString(Format, new CoordinateDDMFormatter());
                break;

            case CoordinateType.DMS:
                var dms = new CoordinateDMS();

                if (ctdict.ContainsKey(type))
                {
                    CoordinateDMS.TryParse(ctdict[type], out dms);
                }
                Sample = dms.ToString(Format, new CoordinateDMSFormatter());
                break;

            case CoordinateType.GARS:
                var gars = new CoordinateGARS();

                if (ctdict.ContainsKey(type))
                {
                    CoordinateGARS.TryParse(ctdict[type], out gars);
                }

                Sample = gars.ToString(Format, new CoordinateGARSFormatter());
                break;

            case CoordinateType.MGRS:
                var mgrs = new CoordinateMGRS();

                if (ctdict.ContainsKey(type))
                {
                    CoordinateMGRS.TryParse(ctdict[type], out mgrs);
                }

                Sample = mgrs.ToString(Format, new CoordinateMGRSFormatter());
                break;

            case CoordinateType.USNG:
                var usng = new CoordinateUSNG();

                if (ctdict.ContainsKey(type))
                {
                    CoordinateUSNG.TryParse(ctdict[type], out usng);
                }

                Sample = usng.ToString(Format, new CoordinateMGRSFormatter());
                break;

            case CoordinateType.UTM:
                var utm = new CoordinateUTM();

                if (ctdict.ContainsKey(type))
                {
                    CoordinateUTM.TryParse(ctdict[type], out utm);
                }

                Sample = utm.ToString(Format, new CoordinateUTMFormatter());
                break;

            default:
                Sample = FormatList.FirstOrDefault();
                break;
            }

            RaisePropertyChanged(() => Sample);
        }
Ejemplo n.º 26
0
        private void Tõmba_Click(object sender, EventArgs e)
        {
            kõik          = string.Empty;
            Protsenttekst = string.Empty;
            protsent      = 0;

            progressBar1.Visible = true;
            int i = 1;

            formaat = Convert.ToString(FormatList.SelectedItem);
            if (!valeLink)
            {
                if ((formaat != "wav" && formaat != "mp3" || !string.IsNullOrWhiteSpace(ffmpeg) || File.Exists(Path.Combine(Directory.GetCurrentDirectory(), "ffmpeg.exe"))) && !valeLink)
                {
                    if (formaat == "mp4")
                    {
                        switch (i)
                        {
                        case 1:     //720p
                            index = 22;
                            i++;
                            break;

                        case 2:     //360p
                            index = 18;
                            i++;
                            break;
                        }
                    }
                    if (formaat == "m4a")
                    {
                        index = 140;
                    }
                    if (File.Exists("ffprobe.exe") && File.Exists("ffmpeg.exe"))
                    {
                        ffmpeg = "olemas";
                        YTdl   = Path.Combine(Directory.GetCurrentDirectory(), "youtube-dl.exe");
                    }

                    if (!string.IsNullOrWhiteSpace(link) || !string.IsNullOrWhiteSpace(TXTFail) && !string.IsNullOrWhiteSpace(formaat))
                    {
                        if (string.IsNullOrWhiteSpace(path))
                        {
                            path = Directory.GetCurrentDirectory();
                        }
                        while (true)
                        {
                            var convert = new Process();
                            convert.StartInfo.FileName = "youtube-dl.exe";
                            if (!string.IsNullOrWhiteSpace(NimeBox.Text))
                            {
                                //f**k me
                            }
                            else
                            {
                                if (!link.Contains("playlist"))
                                {
                                    var fileName = new Process
                                    {
                                        StartInfo = new ProcessStartInfo
                                        {
                                            FileName               = "youtube-dl.exe",
                                            Arguments              = "--get-filename " + link,
                                            UseShellExecute        = false,
                                            RedirectStandardOutput = true,
                                            CreateNoWindow         = true
                                        }
                                    };
                                    fileName.Start();
                                    failiNimi = fileName.StandardOutput.ReadToEnd();
                                    fileName.WaitForExit();
                                    failiNimi = failiNimi.Replace("\n", "");
                                    convert.StartInfo.Arguments = "-f " + index + " -o " + "\u0022" + path + @"\" + failiNimi + "\u0022" + " " + link;
                                }
                            }
                            if (!KonsooliNäha.Checked)
                            {
                                convert.StartInfo.UseShellExecute = false;
                                convert.StartInfo.CreateNoWindow  = true;
                            }
                            if (valeLink)
                            {
                                break;
                            }
                            if (!string.IsNullOrWhiteSpace(YTdl))
                            {
                                convert.StartInfo.FileName = YTdl;
                            }
                            if (!link.Contains("playlist") && NimeBox.Text == "" && path != Directory.GetCurrentDirectory())
                            {
                                if (!string.IsNullOrWhiteSpace(ffmpeg) && !string.IsNullOrWhiteSpace(YTdl))
                                {
                                    if (formaat == "wav" || formaat == "mp3" || formaat == "m4a")
                                    {
                                        if (!string.IsNullOrWhiteSpace(NimeBox.Text))
                                        {
                                            convert.StartInfo.Arguments = "--extract-audio --audio-format " + formaat + " --output " + "\u0022" + path + @"\" + failiNimi.Replace("\n", "") + ".mp4" + "\u0022" + " " + link;
                                        }
                                        else
                                        {
                                            convert.StartInfo.Arguments = "--extract-audio --audio-format " + formaat + " -o " + "\u0022" + path + @"\" + failiNimi + "\u0022" + " " + link;
                                            failiNimi = failiNimi.Replace(".mp4", "." + formaat);
                                        }
                                    }
                                }
                                if (!string.IsNullOrWhiteSpace(TXTFail))
                                {
                                    if (formaat == "wav" || formaat == "mp3" || formaat == "m4a")
                                    {
                                        convert.StartInfo.Arguments = "--extract-audio --audio-format " + formaat + " -a " + TXTFail;
                                    }
                                    else
                                    {
                                        convert.StartInfo.Arguments = "-f " + index + " -a " + TXTFail;
                                    }
                                }
                            }
                            else
                            {
                                if (NimeBox.Text == "")
                                {
                                    convert.StartInfo.Arguments = "--extract-audio --audio-format " + formaat + " " + link;
                                }
                                else if (formaat == "mp4")
                                {
                                    convert.StartInfo.Arguments = "-f " + index + " -o " + "\u0022" + path + @"\" + failiNimi + ".mp4" + "\u0022" + " " + link;
                                }
                                else
                                {
                                    convert.StartInfo.Arguments = "--extract-audio --audio-format " + formaat + " --output " + "\u0022" + path + @"\" + failiNimi.Replace("\n", "") + ".mp4" + "\u0022" + " " + link;
                                }
                            }
                            failiNimi = failiNimi.Replace(".webm", "." + formaat);
                            failiNimi = failiNimi.Replace(".mp4", "." + formaat);
                            if (!File.Exists(path + @"\" + failiNimi))
                            {
                                while (true)
                                {
                                    if (!KonsooliNäha.Checked)
                                    {
                                        convert.StartInfo.RedirectStandardOutput = true;
                                        convert.Start();
                                        if (!link.Contains("playlist"))
                                        {
                                            for (int a = 0; a < 6; a++)
                                            {
                                                kõik = convert.StandardOutput.ReadLine();
                                            }
                                        }
                                        else
                                        {
                                            for (int a = 0; a < 15; a++)
                                            {
                                                kõik = convert.StandardOutput.ReadLine();
                                                if (a == 2)
                                                {
                                                    kõik = Regex.Match(kõik, @"\d+").Value;
                                                    playlistVideoNumber = Int32.Parse(kõik);
                                                }
                                            }
                                        }
                                        if (!link.Contains("playlist"))
                                        {
                                            playlistVideoNumber = 1;
                                        }
                                        for (int a = 0; a < playlistVideoNumber; a++)
                                        {
                                            while (protsent != 100)
                                            {
                                                kõik = convert.StandardOutput.ReadLine();
                                                Kook = kõik;
                                                if (kõik != null)
                                                {
                                                    Protsenttekst = kõik.Substring(11, 6);
                                                    //Protsenttekst = Regex.Replace(Protsenttekst, "[^0-9.]", "");
                                                    Protsenttekst = Regex.Match(Protsenttekst, @"\d+").Value;
                                                    try
                                                    {
                                                        protsent = Int32.Parse(Protsenttekst);
                                                    }
                                                    catch (Exception)
                                                    {
                                                        MessageBox.Show("See fail juba eksisteerib");
                                                        throw;
                                                    }
                                                    progressBar1.Value = protsent;
                                                    using (Graphics gr = progressBar1.CreateGraphics())
                                                    {
                                                        gr.DrawString(Kook.ToString(),
                                                                      SystemFonts.DefaultFont,
                                                                      Brushes.Black,
                                                                      new PointF(progressBar1.Width / 2 - (gr.MeasureString(Kook.ToString(),
                                                                                                                            SystemFonts.DefaultFont).Width / 2.0F),
                                                                                 progressBar1.Height / 2 - (gr.MeasureString(Kook.ToString(),
                                                                                                                             SystemFonts.DefaultFont).Height / 2.0F)));
                                                    }
                                                }
                                                else
                                                {
                                                    if (formaat == "mp4")
                                                    {
                                                        switch (i)
                                                        {
                                                        case 1:     //720p
                                                            index = 22;
                                                            i++;
                                                            break;

                                                        case 2:     //360p
                                                            index = 18;
                                                            i++;
                                                            break;
                                                        }
                                                        convert.StartInfo.Arguments = convert.StartInfo.Arguments = "-f " + index + " -o " + "\u0022" + path + @"\" + failiNimi + ".mp4" + "\u0022" + " " + link;
                                                    }
                                                    else
                                                    {
                                                        MessageBox.Show("Link ei tööta");
                                                        valeLink = true;
                                                        lõpetada = true;
                                                        break;
                                                    }
                                                    break;
                                                }
                                                if (protsent == 100 && link.Contains("playlist"))
                                                {
                                                    for (int b = 0; b < 10; b++)
                                                    {
                                                        kõik = convert.StandardOutput.ReadLine();
                                                    }
                                                }
                                            }
                                            protsent = 0;
                                        }
                                        convert.WaitForExit();
                                        if (File.Exists(path + @"\" + failiNimi) || File.Exists(path + @"\" + failiNimi + "." + formaat) || lõpetada)
                                        {
                                            break;
                                        }
                                    }

                                    else
                                    {
                                        while (true)
                                        {
                                            convert.Start();
                                            convert.WaitForExit();
                                            if (File.Exists(path + @"\" + failiNimi) || File.Exists(path + @"\" + failiNimi + "." + formaat))
                                            {
                                                break;
                                            }
                                            else
                                            {
                                                switch (i)
                                                {
                                                case 1:     //720p
                                                    index = 22;
                                                    i++;
                                                    break;

                                                case 2:     //360p
                                                    index = 18;
                                                    i++;
                                                    break;
                                                }
                                                convert.StartInfo.Arguments = convert.StartInfo.Arguments = "-f " + index + " -o " + "\u0022" + path + @"\" + failiNimi + ".mp4" + "\u0022" + " " + link;
                                            }
                                        }
                                        break;
                                    }
                                }

                                if (string.IsNullOrWhiteSpace(TXTFail) && !link.Contains("playlist"))
                                {
                                    if (!string.IsNullOrWhiteSpace(NimeBox.Text))
                                    {
                                        if (File.Exists(path + @"\" + failiNimi + "." + formaat))
                                        {
                                            MessageBox.Show("Teie video on alla laetud");
                                            LinkBox.Text = "";
                                            FormatList.ResetText();
                                            NimeBox.Text       = "";
                                            progressBar1.Value = 0;
                                            break;
                                        }
                                    }
                                    else
                                    {
                                        if (File.Exists(path + @"\" + failiNimi) || File.Exists(path + @"\" + failiNimi + "." + formaat))
                                        {
                                            MessageBox.Show("Teie video on alla laetud");
                                            LinkBox.Text = "";
                                            FormatList.ResetText();
                                            NimeBox.Text       = "";
                                            progressBar1.Value = 0;
                                            break;
                                        }
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Teie videod on alla laetud");
                                    LinkBox.Text = "";
                                    FormatList.ResetText();
                                    NimeBox.Text       = "";
                                    progressBar1.Value = 0;
                                    break;
                                }
                            }
                            else
                            {
                                MessageBox.Show("See video/audio on teil juba seal olemas");
                                progressBar1.Value = 0;
                                break;
                            }
                            break;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Palun täida kõik väljad ja tee kindlaks, et link on õige");
                    }
                }
                else
                {
                    if (!valeLink)
                    {
                        MessageBox.Show("Palun lisage ffmpeg ja ffprobe directory või pange see samasse folderisse, kus on see programm");
                    }
                    else
                    {
                        MessageBox.Show("Sisestatud link ei tööta, palun asendage see millegi muuga");
                    }
                }
            }
            else
            {
                MessageBox.Show("Sisestatud link ei tööta, palun asendage see millegi muuga");
            }
        }
Ejemplo n.º 27
0
        public static string ToUrlFormat(this System.Collections.Specialized.NameValueCollection Collection, IDictionary <string, string> FormatList, UrlEncodeType encodeType, Encoding encoding, bool KeepEmpty, out Dictionary <string, string> OverDict)
        {
            if (FormatList == null)
            {
                FormatList = new Dictionary <string, string>();
            }
            //首先获取全部Key
            IEnumerable <string> FormatKey = FormatList.Keys.Tolower();

            OverDict = new Dictionary <string, string>();
            //把输入字典传进过滤字典里面,重复的不叠加
            foreach (var ckey in Collection.AllKeys.Reverse())
            {
                if (ckey == null)
                {
                    continue;
                }
                if (!FormatKey.Contains(ckey.ToLower()))
                {
                    FormatList.Add(ckey, Collection[ckey]);
                }
                else
                {
                    OverDict.Add(ckey, Collection[ckey]);
                }
            }

            //倒转序列
            var temp = FormatList.Reverse();


            StringBuilder sb = new StringBuilder();

            sb.Append("?");
            if (temp.Count() == 0)
            {
                return("");
            }
            foreach (var item in temp)
            {
                if (item.Value == null)
                {
                    if (!KeepEmpty)
                    {
                        sb.AppendFormat("{0}=&", item.Key);
                    }
                    continue;
                }
                if (item.Value.IndexOf("{0}") >= 0)
                {
                    sb.AppendFormat("{0}={1}&", item.Key, item.Value.ToString()); continue;
                }
                switch (encodeType)
                {
                case UrlEncodeType.HtmlEncode:
                    sb.AppendFormat("{0}={1}&", item.Key, System.Web.HttpUtility.HtmlEncode(item.Value.ToString()));
                    break;

                case UrlEncodeType.UrlEncode:
                    if (encoding != null)
                    {
                        sb.AppendFormat("{0}={1}&", item.Key, System.Web.HttpUtility.UrlEncode(item.Value.ToString(), encoding));
                    }
                    else
                    {
                        sb.AppendFormat("{0}={1}&", item.Key, System.Web.HttpUtility.UrlEncode(item.Value.ToString()));
                    }
                    break;

                case UrlEncodeType.NoEncode:
                    sb.AppendFormat("{0}={1}&", item.Key, item.Value.ToString());
                    break;
                }
            }
            return(sb.ToString());
        }
Ejemplo n.º 28
0
 // GET: api/Format
 public IEnumerable <Format> Get()
 {
     formatList = new FormatList();
     formatList.Load();
     return(formatList);
 }
Ejemplo n.º 29
0
        /// <summary>
        /// get metadata informations the latest version of a dataset
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Metadata GetMetadata(long id, string metadataPrefix)
        {
            DatasetManager datasetManager = new DatasetManager();

            try
            {
                DatasetVersion datasetVersion = datasetManager.GetDatasetLatestVersion(id);

                Metadata  metadata  = new Metadata();
                long      mdId      = datasetVersion.Dataset.MetadataStructure.Id;
                XDocument xMetadata = XmlUtility.ToXDocument(datasetVersion.Metadata);

                metadata.Title       = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Title), LinkElementType.Key, mdId, xMetadata));
                metadata.Description = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Description), LinkElementType.Key, mdId, xMetadata));

                metadata.Creator = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Author), LinkElementType.Key, mdId, xMetadata));

                // string to date
                string   date = MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.DataLastModified), LinkElementType.Key, mdId, xMetadata).FirstOrDefault();
                DateTime dt;
                if (DateTime.TryParse(date, out dt))
                {
                    metadata.Date = dt;
                }
                else // if date is not set in the metadata, lassd motified date of the version is loaded
                {
                    metadata.Date = datasetVersion.Timestamp;
                }

                metadata.Subject = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Subject), LinkElementType.Key, mdId, xMetadata));

                // if the publisher is not set in the metadata, its loaded from the tenant.
                var publishers = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Publisher), LinkElementType.Key, mdId, xMetadata));
                if (!publishers.Any())
                {
                    metadata.Publisher = AppConfiguration.ApplicationName;
                }

                metadata.Contributor = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Contributor), LinkElementType.Key, mdId, xMetadata));

                //if type is not in the metadata default it is "dataset"
                var types = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Type), LinkElementType.Key, mdId, xMetadata));
                if (!types.Any())
                {
                    types = getEntityName(id);
                }
                metadata.Type = types;

                //if language is not in the metadata default it is "english"
                var formats = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Format), LinkElementType.Key, mdId, xMetadata));
                if (!formats.Any())
                {
                    formats = string.Join("][", getFormats(id));
                }
                metadata.Format = formats;

                metadata.Identifier = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Identifier), LinkElementType.Key, mdId, xMetadata));
                metadata.Source     = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Source), LinkElementType.Key, mdId, xMetadata));

                //if language is not in the metadata default it is "english"
                var language = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Language), LinkElementType.Key, mdId, xMetadata));
                if (language.Any())
                {
                    metadata.Language = "English";
                }

                metadata.Relation = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Relation), LinkElementType.Key, mdId, xMetadata));
                metadata.Coverage = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Coverage), LinkElementType.Key, mdId, xMetadata));
                metadata.Rights   = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Rights), LinkElementType.Key, mdId, xMetadata));

                //relinks
                metadata.ParentIdentifier      = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Relation), LinkElementType.Key, mdId, xMetadata));
                metadata.AdditionalContent     = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Description), LinkElementType.Key, mdId, xMetadata));
                metadata.PrincipalInvestigator = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Contributor), LinkElementType.Key, mdId, xMetadata));

                //set metadata prefix
                var formatNum = FormatList.Prefix2Int(metadataPrefix);
                metadata.MdFormat = formatNum;

                // linkTypes
                metadata.DataCenter = AppConfiguration.ApplicationName;

                //ToDo add version to the path
                string server = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority);
                string url    = server + "/ddm/data/showdata/" + id;
                metadata.AddtionalData.Add(Metadata.METADATA_URL.ToString(), url);
                metadata.AddtionalData.Add(Metadata.DATA_URL.ToString(), url);

                metadata.CoverageComplex = new Coverage();
                metadata.CoverageComplex.NorthBoundLatitude = Convert.ToInt32(MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.NorthBoundLatitude), LinkElementType.Key, mdId, xMetadata).FirstOrDefault());
                metadata.CoverageComplex.WestBoundLongitude = Convert.ToInt32(MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.WestBoundLongitude), LinkElementType.Key, mdId, xMetadata).FirstOrDefault());
                metadata.CoverageComplex.SouthBoundLatitude = Convert.ToInt32(MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.SouthBoundLatitude), LinkElementType.Key, mdId, xMetadata).FirstOrDefault());
                metadata.CoverageComplex.EastBoundLongitude = Convert.ToInt32(MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.EastBoundLongitude), LinkElementType.Key, mdId, xMetadata).FirstOrDefault());
                metadata.CoverageComplex.Location           = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Coverage), LinkElementType.Key, mdId, xMetadata));
                metadata.CoverageComplex.MinElevation       = MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.MinEvelation), LinkElementType.Key, mdId, xMetadata).FirstOrDefault();
                metadata.CoverageComplex.MaxElevation       = MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.MaxEvelation), LinkElementType.Key, mdId, xMetadata).FirstOrDefault();

                metadata.Keyword = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Keyword), LinkElementType.Key, mdId, xMetadata));

                var parameters = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Parameter), LinkElementType.Key, mdId, xMetadata));
                if (string.IsNullOrEmpty(parameters))
                {
                    parameters = string.Join("][", getVariableNames(id));
                }
                metadata.Parameter = parameters;

                metadata.Method       = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Method), LinkElementType.Key, mdId, xMetadata));
                metadata.Sensor       = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Sensor), LinkElementType.Key, mdId, xMetadata));
                metadata.Feature      = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Feature), LinkElementType.Key, mdId, xMetadata));
                metadata.Taxonomy     = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Taxonomy), LinkElementType.Key, mdId, xMetadata));
                metadata.Platform     = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Platform), LinkElementType.Key, mdId, xMetadata));
                metadata.Project      = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.ProjectTitle), LinkElementType.Key, mdId, xMetadata));
                metadata.Habitat      = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Habitat), LinkElementType.Key, mdId, xMetadata));
                metadata.Stratigraphy = string.Join("][", MappingUtils.GetValuesFromMetadata(Convert.ToInt64(Key.Stratigraphy), LinkElementType.Key, mdId, xMetadata));

                return(metadata);
            }
            finally
            {
                datasetManager.Dispose();
            }
        }
Ejemplo n.º 30
0
        /// <summary>
        /// OCR処理を実施します
        /// </summary>
        /// <param name="InPath">入力パス</param>
        /// <param name="NgPath">NG出力パス</param>
        /// <param name="rePath">OCR変換結果出力パス</param>
        /// <param name="FormatName">書式ファイル名</param>
        /// <param name="fCnt">書式ファイルの件数</param>
        private void ocrMain(string InPath, string NgPath, string rePath, string FormatName, int fCnt)
        {
            IEngine en        = null;                                                // OCRエンジンのインスタンスを保持
            string  ocr_csv   = string.Empty;                                        // OCR変換出力CSVファイル
            int     _ngCount  = 0;                                                   // フォーマットアンマッチ画像枚数
            string  fnm       = string.Empty;                                        // ファイル名
            string  path2Fdir = Properties.Settings.Default.instDir + global.DIR_2F; // 2F伝票フォルダ

            try
            {
                // 指定された出力先フォルダがなければ作成する
                if (System.IO.Directory.Exists(rePath) == false)
                {
                    System.IO.Directory.CreateDirectory(rePath);
                }

                // 指定されたNGの場合の出力先フォルダがなければ作成する
                if (System.IO.Directory.Exists(NgPath) == false)
                {
                    System.IO.Directory.CreateDirectory(NgPath);
                }

                // 2F伝票フォルダがなければ作成する
                if (System.IO.Directory.Exists(path2Fdir) == false)
                {
                    System.IO.Directory.CreateDirectory(path2Fdir);
                }

                // OCRエンジンのインスタンスの生成・取得
                en = EngineFactory.GetEngine();
                if (en == null)
                {
                    // エンジンが他で取得されている場合は、Release() されるまで取得できない
                    System.Console.WriteLine("SDKは使用中です");
                    return;
                }

                //オーナーフォームを無効にする
                this.Enabled = false;

                //プログレスバーを表示する
                frmPrg frmP = new frmPrg();
                frmP.Owner = this;
                frmP.Show();

                IFormatList FormatList;
                IFormat     Format;
                IField      Field;
                int         nPage;
                int         ocrPage   = 0;
                int         fileCount = 0;

                // フォーマットのロード・設定
                FormatList = en.FormatList;
                FormatList.Add(FormatName);

                // tifファイルの認識
                foreach (string files in System.IO.Directory.GetFiles(InPath, "*.tif"))
                {
                    nPage = 1;
                    while (true)
                    {
                        try
                        {
                            // 対象画像を設定する
                            en.SetBitmap(files, nPage);

                            //プログレスバー表示
                            fileCount++;
                            frmP.Text          = "OCR変換処理実行中 " + fileCount.ToString() + "/" + fCnt.ToString();
                            frmP.progressValue = fileCount * 100 / fCnt;
                            frmP.ProgressStep();
                        }
                        catch (IDRException ex)
                        {
                            // ページ読み込みエラー
                            if (ex.No == ErrorCode.IDR_ERROR_FORM_FILEREAD)
                            {
                                // ページの終了
                                break;
                            }
                            else
                            {
                                // 例外のキャッチ
                                MessageBox.Show("例外が発生しました:Error No ={0:X}", ex.No.ToString());
                            }
                        }

                        //////Console.WriteLine("-----" + strImageFile + "の" + nPage + "ページ-----");
                        // 現在ロードされている画像を自動的に傾き補正する
                        en.AutoSkew();

                        // 傾き角度の取得
                        double angle = en.GetSkewAngle();
                        //////System.Console.WriteLine("時計回りに" + angle + "度傾き補正を行いました");

                        try
                        {
                            // 現在ロードされている画像を自動回転してマッチする番号を取得する
                            Format = en.MatchFormatRotate();
                            int direct = en.GetRotateAngle();

                            //画像ロード
                            RasterCodecs.Startup();
                            RasterCodecs cs = new RasterCodecs();
                            //RasterImage img;

                            // 描画時に使用される速度、品質、およびスタイルを制御します。
                            //RasterPaintProperties prop = new RasterPaintProperties();
                            //prop = RasterPaintProperties.Default;
                            //prop.PaintDisplayMode = RasterPaintDisplayModeFlags.Resample;
                            //leadImg.PaintProperties = prop;

                            RasterImage img = cs.Load(files, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1);

                            RotateCommand rc = new RotateCommand();
                            rc.Angle     = (direct) * 90 * 100;
                            rc.FillColor = new RasterColor(255, 255, 255);
                            rc.Flags     = RotateCommandFlags.Resize;
                            rc.Run(img);
                            //rc.Run(leadImg.Image);

                            //cs.Save(leadImg.Image, files, RasterImageFormat.Tif, 0, 1, 1, 1, CodecsSavePageMode.Overwrite);
                            cs.Save(img, files, RasterImageFormat.CcittGroup4, 0, 1, 1, 1, CodecsSavePageMode.Overwrite);

                            // マッチしたフォーマットに登録されているフィールド数を取得
                            int fieldNum = Format.NumOfFields;
                            int matchNum = Format.FormatNo + 1;
                            //////System.Console.WriteLine(matchNum + "番目のフォーマットがマッチ");
                            int i      = 1;
                            int fIndex = 0;
                            ocr_csv = "*,";

                            // ファイルに画像ファイル名フィールドを付加します
                            ocr_csv += System.IO.Path.GetFileName(files);

                            // 認識されたフィールドを順次読み出します
                            Field = Format.Begin();

                            // 3F伝票処理時に2F伝票を判定する 2013/07/01
                            if (FormatName == Properties.Settings.Default.instDir + Properties.Settings.Default.fmtHPath)
                            {
                                string fldText = string.Empty;
                                while (Field != null)
                                {
                                    // 指定フィールドを認識し、テキストを取得(対象は最終フィールド)
                                    fldText = Field.ExtractFieldText();

                                    // 次のフィールドの取得
                                    Field = Format.Next();
                                }

                                // 再度認識されたフィールドを順次読み出します 2013/07/01
                                Field = Format.Begin();

                                // 2F書式伝票のとき(指定フィールドが空白である)
                                if (fldText.Trim().Length == 0)
                                {
                                    // 2F伝票フォルダへ移動する
                                    System.IO.File.Move(files, path2Fdir + System.IO.Path.GetFileName(files));

                                    // ページをカウントして次の画像のOCR処理へ
                                    ocrPage++;
                                    nPage += 1;
                                    continue;
                                }
                            }

                            // 伝票フィールド編集
                            while (Field != null)
                            {
                                //カンマ付加
                                if (ocr_csv != string.Empty)
                                {
                                    ocr_csv += ",";
                                }

                                // 指定フィールドを認識し、テキストを取得
                                string strText = Field.ExtractFieldText();

                                // 年月日のとき各々独立フィールドに分解します
                                if (fIndex == 1)
                                {
                                    string strYYMMDD = strText.PadRight(6, '0');
                                    string ymd       = strYYMMDD.Substring(0, 2) + "," + strYYMMDD.Substring(2, 2) + "," + strYYMMDD.Substring(4, 2);
                                    ocr_csv += ymd;
                                }
                                else if (fIndex != 165)
                                {
                                    ocr_csv += strText;    // 他のフィールドで最終フィールド以外(2013/07/01)
                                }

                                // 摘要複写欄
                                if (fIndex == 10 || fIndex == 19 || fIndex == 28 || fIndex == 37 ||
                                    fIndex == 46 || fIndex == 55 || fIndex == 64 || fIndex == 73 || fIndex == 82 ||
                                    fIndex == 91 || fIndex == 100 || fIndex == 109 || fIndex == 118 || fIndex == 127 ||
                                    fIndex == 136 || fIndex == 145 || fIndex == 154 || fIndex == 163)
                                {
                                    ocr_csv += ",0";
                                }

                                // 改行
                                if (fIndex == 2 || fIndex == 11 || fIndex == 20 || fIndex == 29 || fIndex == 38 ||
                                    fIndex == 47 || fIndex == 56 || fIndex == 65 || fIndex == 74 || fIndex == 83 ||
                                    fIndex == 92 || fIndex == 101 || fIndex == 110 || fIndex == 119 || fIndex == 128 ||
                                    fIndex == 137 || fIndex == 146 || fIndex == 155)
                                {
                                    // ヘッダ業改行のとき明細行数を付加
                                    if (fIndex == 2)
                                    {
                                        ocr_csv += ",";
                                        ocr_csv += global.MAXGYOU_PRN.ToString();
                                    }

                                    ocr_csv += Environment.NewLine;

                                    // 取消欄
                                    ocr_csv += "0";
                                }

                                // 次のフィールドの取得
                                Field = Format.Next();
                                i    += 1;

                                // フィールドインデックスインクリメント
                                fIndex++;
                            }

                            //出力ファイル
                            System.IO.StreamWriter outFile = new System.IO.StreamWriter(InPath + System.IO.Path.GetFileNameWithoutExtension(files) + ".csv", false, System.Text.Encoding.GetEncoding(932));
                            outFile.WriteLine(ocr_csv);
                            outFile.Close();

                            //OCR変換枚数カウント
                            _okCount++;
                        }
                        catch (IDRWarning ex)
                        {
                            // Engine.MatchFormatRotate() で
                            // フォーマットにマッチしなかった場合、空ファイルを出力します
                            if (ex.No == ErrorCode.IDR_WARN_FORM_NO_MATCH)
                            {
                                //////// アンマッチフォルダへ移動する
                                //////System.IO.File.Move(files, NgPath + System.IO.Path.GetFileName(files));

                                // 区切り文字
                                ocr_csv = "*,";

                                // ファイルに画像ファイル名フィールドを付加します
                                ocr_csv += System.IO.Path.GetFileName(files);

                                // ヘッダ部 (決算仕訳区分、年、月、日、伝票№(NG))
                                ocr_csv += ",0,,,,NG," + global.MAXGYOU_PRN.ToString() + Environment.NewLine;

                                //// 明細部
                                string meisai = "0,,,,,,,,,0," + Environment.NewLine;
                                for (int i = 0; i < 18; i++)
                                {
                                    ocr_csv += meisai;
                                }

                                //出力ファイル
                                System.IO.StreamWriter outFile = new System.IO.StreamWriter(InPath + System.IO.Path.GetFileNameWithoutExtension(files) + ".csv", false, System.Text.Encoding.GetEncoding(932));
                                outFile.WriteLine(ocr_csv);
                                outFile.Close();

                                _ngCount++;  //NG枚数カウント
                            }
                        }

                        ocrPage++;
                        nPage += 1;
                    }
                }

                // いったんオーナーをアクティブにする
                this.Activate();

                // 進行状況ダイアログを閉じる
                frmP.Close();

                // オーナーのフォームを有効に戻す
                this.Enabled = true;

                // OCR変換画像とCSVデータをOCR結果出力フォルダへ移動する
                foreach (string files in System.IO.Directory.GetFiles(InPath, "*.*"))
                {
                    System.IO.File.Move(files, rePath + System.IO.Path.GetFileName(files));
                }

                // 終了メッセージ (2F伝票画像がなければ処理終了とみなす)
                var f2Tif = System.IO.Directory.GetFileSystemEntries(Properties.Settings.Default.instDir + global.DIR_2F, "*.tif");

                if (f2Tif.Length == 0)
                {
                    string        finMessage = string.Empty;
                    StringBuilder sb         = new StringBuilder();
                    sb.Append("OCR認識処理が終了しました。");
                    sb.Append("引き続き修正確認&受け渡しデータ作成を行ってください。");
                    sb.Append(Environment.NewLine);
                    sb.Append(Environment.NewLine);
                    sb.Append("OK件数 : ");
                    sb.Append(_okCount.ToString());
                    sb.Append(Environment.NewLine);
                    sb.Append("NG件数 : ");
                    sb.Append(_ngCount.ToString());
                    sb.Append(Environment.NewLine);

                    MessageBox.Show(sb.ToString(), "処理終了", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                FormatList.Delete(0);
            }
            catch (System.Exception ex)
            {
                // 例外のキャッチ
                string errMessage = string.Empty;
                errMessage += "System例外が発生しました:" + Environment.NewLine;
                errMessage += "必要なDLL等が実行モジュールと同ディレクトリに存在するか確認してください。:" + Environment.NewLine;
                errMessage += ex.Message.ToString();
                MessageBox.Show(errMessage, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            finally
            {
                en.Release();
            }
        }