Franken_.App_Code.Font.IngestImages C# (CSharp) Method

IngestImages() public method

public IngestImages ( string LangName, string FontName, string BaseName, string XMLFile, string PathToImages, bool UseSubList ) : void
LangName string
FontName string
BaseName string
XMLFile string
PathToImages string
UseSubList bool
return void
        public void IngestImages(string LangName, string FontName, string BaseName, string XMLFile, string PathToImages, bool UseSubList)
        {
            PageXml pageXml = PageXmlFactory.GetPageXml(XMLFile);

            var Extracts = pageXml.GetGlyphs();

            string[] GlyphFiles = System.IO.Directory.GetFiles(PathToImages);

            foreach (var E in Extracts)
            {
                if (E.ID != "" && E.Unicode.Trim() != "")
                {
                    string ImagePath = "";
                    string FixedChar = E.Unicode.Trim();
                    if(UseSubList)
                        FixedChar = FixGlyphChar(FixedChar);

                    for (int x = 0; x < GlyphFiles.Length; x++)
                    {
                        string PossibleID = GlyphFiles[x].ToLower().Replace(PathToImages.ToLower() + "\\", "").Replace(BaseName.ToLower() + "_", "").Replace(".tif", "");
                        if (PossibleID == E.ID)
                        {
                            ImagePath = GlyphFiles[x].Replace(db.DataDirectory, "");
                            break;
                        }
                    }

                    if (ImagePath != "")
                    {
                        int gIndex = this.FindGlyph(FixedChar);

                        if (gIndex < 0)
                        {
                            this.AddGlyph(FixedChar, ImagePath);
                        }
                        else
                        {
                            this.Glyphs[gIndex].AddImage(ImagePath);
                        }
                    }
                }
            }
        }

Usage Example

コード例 #1
0
        private void DoTiffXMLIngestion(ref BackgroundWorker Slave, string LangName, string FontID, string TiffXMLFolder, bool UseSubList)
        {
            double Increment = 1;

            if (FontID != "" && FontID != "" && TiffXMLFolder != "")
            {
                App_Code.Font myFont = new App_Code.Font(FontID, true, true);

                string FullInputDir  = TiffXMLFolder + "\\";
                string FullOutputDir = db.DataDirectory + "\\GlyphExtraction\\Output\\" + myFont.ID;

                string[] InputFiles = System.IO.Directory.GetFiles(FullInputDir, "*.xml", SearchOption.TopDirectoryOnly);

                if (InputFiles.Count() > 0)
                {
                    Increment = 50 / InputFiles.Count();
                }
                int CurrentProgress = 0;

                foreach (string F in InputFiles)
                {
                    if (Slave.CancellationPending)
                    {
                        break;
                    }
                    else
                    {
                        string inputFileName = F.Replace(FullInputDir, "");

                        if (inputFileName.EndsWith(".xml") && File.Exists(F.Replace(".xml", ".tif")))
                        {
                            if (!System.IO.Directory.Exists(FullOutputDir + "\\" + inputFileName.Replace(".xml", "")))
                            {
                                System.IO.Directory.CreateDirectory(FullOutputDir + "\\" + inputFileName.Replace(".xml", ""));
                            }

                            ProcessStatus = "Extracting " + inputFileName + "...";
                            Slave.ReportProgress(((int)(CurrentProgress * Increment)));

                            string inputImageFilePath = FullInputDir + inputFileName.Replace(".xml", ".tif");
                            string inputXmlFilePath   = FullInputDir + inputFileName;
                            string outputFolderPath   = FullOutputDir + "\\" + inputFileName.Replace(".xml", "");

                            PageXml pageXml = PageXmlFactory.GetPageXml(F);

                            string   extractor     = pageXml.ImageExtratorRelPath;
                            string   command       = string.Format(@"{0}\GlyphExtraction\{1}", db.DataDirectory, extractor);
                            FileInfo extractorExec = new FileInfo(command);
                            string   options       = pageXml.CreateImageExtractorCommandLine(inputImageFilePath, inputXmlFilePath, outputFolderPath);

                            ExecuteCommand(command, options, extractorExec.DirectoryName);
                            CurrentProgress++;
                            ProcessStatus = "Processing extracted images...";
                            Slave.ReportProgress(((int)(CurrentProgress * Increment)));

                            myFont.IngestImages(LangName, myFont.Name, inputFileName.Replace(".xml", ""), FullInputDir + "\\" + inputFileName, FullOutputDir + "\\" + inputFileName.Replace(".xml", ""), UseSubList);
                        }
                    }

                    CurrentProgress++;
                    ProcessStatus = "Moving to next TIF/XML pair...";
                    Slave.ReportProgress(((int)(CurrentProgress * Increment)));
                }
            }
        }
All Usage Examples Of Franken_.App_Code.Font::IngestImages