Ejemplo n.º 1
0
        public IActionResult UploadText(int UserId, int DataId, int DatasetId, string Text, int LangId = 0)
        {
            DatasetSubcategoryMapping datasetSubcategoryMapping = _context.DatasetSubcategoryMapping.Where(x => x.DatasetId == DatasetId).SingleOrDefault();
            SubCategories             destTableName             = _context.SubCategories.Find(datasetSubcategoryMapping.DestinationSubcategoryId);

            if (destTableName.Name == "ImageText")
            {
                try
                {
                    ImageText imageText = new ImageText
                    {
                        UserId       = UserId,
                        DataId       = DataId,
                        DomainId     = iMAGEContext.Images.Where(x => x.DataId == DataId).FirstOrDefault().DomainId,
                        OutputData   = Text,
                        OutputLangId = _context.UserInfo.SingleOrDefault(x => x.UserId == UserId).LangId1,
                        DatasetId    = DatasetId,
                        AddedOn      = DateTime.Now
                    };
                    imageToTextContext.ImageText.Add(imageText);
                    imageToTextContext.SaveChanges();
                    return(Ok(true));
                }
                catch (Exception ex)
                {
                    return(BadRequest(false));
                }
            }
            else if (destTableName.Name == "TextText")
            {
                try
                {
                    TextText textText = new TextText
                    {
                        UserId       = UserId,
                        DataId       = DataId,
                        LangId       = _context.UserInfo.SingleOrDefault(x => x.UserId == UserId).LangId1,
                        DomainId     = _TEXTContext.Text.FirstOrDefault(x => x.DataId == DataId).DomainId,
                        OutputData   = Text,
                        OutputLangId = _context.UserInfo.SingleOrDefault(x => x.UserId == UserId).LangId1,
                        DatasetId    = DatasetId,
                        AddedOn      = DateTime.Now
                    };
                    textContext.TextText.Add(textText);
                    textContext.SaveChanges();
                    jsonResponse.IsSuccessful = true;
                    jsonResponse.Response     = "Text aved";
                    return(Ok(jsonResponse));
                }
                catch (Exception)
                {
                    jsonResponse.IsSuccessful = false;
                    jsonResponse.Response     = "Text not saved";
                    return(BadRequest(jsonResponse));
                }
            }
            jsonResponse.IsSuccessful = false;
            jsonResponse.Response     = "Text not saved";
            return(BadRequest(jsonResponse));
        }
Ejemplo n.º 2
0
        private static void DrawSmallText(Graphics g, ImageText smallText, EnumImageStyle style)
        {
            string path = smallText.Font;
            //读取字体文件
            PrivateFontCollection pfc = new PrivateFontCollection();

            pfc.AddFontFile(path);
            FontFamily font = pfc.Families[0];
            //写字1
            String drawString = smallText.Text; // Create font and brush.
                                                //实例化字体
            Font       drawFont = new Font(font, smallText.FontSize);
            SolidBrush drawBrush;
            float      x = smallText.PositionX; float y = smallText.PositionY;

            if (style == EnumImageStyle.阳文)
            {
                drawBrush = new SolidBrush(Color.Red);
            }
            else
            {
                drawBrush = new SolidBrush(Color.White);
            }
            g.DrawString(drawString, drawFont, drawBrush, x, y);
        }
Ejemplo n.º 3
0
        public Sample GetTexts(int sampleId, Sample sample) //main text and small text
        {
            ImageFontService imageFontService = new ImageFontService();

            List <ImageText> mainTexts  = new List <ImageText>();
            List <ImageText> smallTexts = new List <ImageText>();
            string           strQuery   = $"SELECT * FROM imageText WHERE sampleId = {sampleId} order by id";

            var rows = contexto.ExecuteCommandSQL(strQuery, null);

            foreach (var row in rows)
            {
                ImageText imageText = new ImageText();
                imageText.PositionX = int.Parse(row["PositionX"].ToString());
                imageText.PositionY = int.Parse(row["PositionY"].ToString());
                imageText.Type      = int.Parse(row["Type"].ToString());
                imageText.FontSize  = int.Parse(row["FontSize"].ToString());
                imageText.Font      = row["Font"].ToString();
                imageText.imageFont = imageFontService.GetByName(imageText.Font);
                imageText.Text      = row["Text"].ToString();
                if (row["FontOrder"] != null)
                {
                    imageText.Order = Convert.ToBoolean(int.Parse(row["FontOrder"].ToString()));
                }

                if (imageText.Type == (int)EnumTextType.MainText)
                {
                    mainTexts.Add(imageText);
                }
                else
                {
                    smallTexts.Add(imageText);
                }
            }
            if (mainTexts.Count > 0)
            {
                sample.MainText = mainTexts;
            }
            if (smallTexts.Count > 0)
            {
                sample.SmallText = smallTexts;
            }
            return(sample);
        }
Ejemplo n.º 4
0
 private void ResetSetting(ImageText t)
 {
     group.childAlignment  = TextAnchor.MiddleCenter;
     group.constraint      = GridLayoutGroup.Constraint.FixedColumnCount;
     group.constraintCount = 100;
     group.startAxis       = GridLayoutGroup.Axis.Vertical;
     group.spacing         = Vector2.zero;
     if (t.transform.childCount > 0)
     {
         Transform tt    = t.transform.GetChild(0);
         Image     image = tt.GetComponent <Image>();
         if (image != null)
         {
             if (image.sprite != null)
             {
                 Vector2 v = new Vector2(image.sprite.rect.width, image.sprite.rect.height);
                 group.cellSize = v;
             }
         }
     }
 }
Ejemplo n.º 5
0
 public void StartWith(ImageText imageText)
 {
 }
Ejemplo n.º 6
0
        public IActionResult SetValidationData_ImageText(int UserId, int DestAutoId, int DatasetId, int IsMatch)
        {
            DatasetSubcategoryMappingValidation datasetSubcategoryMappingValidation = _masterContext.DatasetSubcategoryMappingValidation
                                                                                      .Where(x => x.DatasetId == DatasetId)
                                                                                      .SingleOrDefault();

            if (datasetSubcategoryMappingValidation != null)
            {
                SubCategories destTableNameValidation = _masterContext.SubCategories.Find(datasetSubcategoryMappingValidation.DestinationSubcategoryId);

                if (destTableNameValidation.Name == "IMAGETEXT_VALIDATION_RESPONSE_DETAIL")
                {
                    int IsValidFlag = 0;
                    if (IsMatch == 1 /*&& NoCrossTalk == 1 && IsClear == 1*/)
                    {
                        IsValidFlag = 1;
                    }
                    _validationInfoContext.ImagetextValidationResponseDetail.Add(new ImagetextValidationResponseDetail
                    {
                        UserId    = UserId,
                        RefAutoid = DestAutoId,
                        IsMatch   = IsMatch,

                        //NoCrossTalk = NoCrossTalk,
                        //IsClear = IsClear,
                        ValidationFlag = IsValidFlag
                    });



                    ///set count
                    DatasetSubcategoryMapping datasetSubcategoryMapping = _masterContext.DatasetSubcategoryMapping
                                                                          .Where(x => x.DatasetId == DatasetId)
                                                                          .SingleOrDefault();

                    if (datasetSubcategoryMapping != null)
                    {
                        SubCategories destTableName = _masterContext.SubCategories.Find(datasetSubcategoryMapping.DestinationSubcategoryId);

                        if (destTableName.Name == "ImageText")
                        {
                            ImageText imageText = imageToTextContext.ImageText.Where(x => x.AutoId == DestAutoId).Select(x => x).SingleOrDefault();
                            if (imageText != null)
                            {
                                imageText.TotalValidationUsersCount += 1;
                                if (IsMatch == 1 /*&& NoCrossTalk == 1 && IsClear == 1*/)
                                {
                                    //imageText.VoteCount += 1;
                                    if (imageText.VoteCount == null)
                                    {
                                        imageText.VoteCount = 1;
                                    }
                                    else
                                    {
                                        imageText.VoteCount += 1;
                                    }
                                }
                                int?maxValidationUsers = _masterContext.Datasets.Where(x => x.DatasetId == DatasetId)
                                                         .Select(x => x.MaxValidationUsers)
                                                         .FirstOrDefault();
                                if (maxValidationUsers != null)
                                {
                                    if (maxValidationUsers * 0.5 < imageText.VoteCount)
                                    {
                                        imageText.IsValid = 1;
                                    }
                                    else if (maxValidationUsers * 0.5 < (imageText.TotalValidationUsersCount - imageText.VoteCount))
                                    {
                                        imageText.IsValid = 0;
                                    }

                                    try
                                    {
                                        _validationInfoContext.SaveChangesAsync();
                                        imageToTextContext.SaveChangesAsync();
                                    }
                                    catch (Exception)
                                    {
                                        _jsonResponse.Response = "Internal Exception";
                                        return(BadRequest(_jsonResponse));
                                    }
                                    _jsonResponse.IsSuccessful = true;
                                    _jsonResponse.Response     = "Saved";
                                    return(Ok(_jsonResponse));
                                }
                            }
                        }
                    }
                }
            }
            _jsonResponse.IsSuccessful = false;
            _jsonResponse.Response     = "Details not match";
            return(NotFound(_jsonResponse));
        }
Ejemplo n.º 7
0
        public ActionResult Update(FormCollection collection, string type)
        {
            try
            {
                #region init sample data
                int    sampleId = int.Parse(collection["ID"]);
                Sample sample   = sampleService.GetSample(sampleId, true);
                sample.IfHasBgImg = Convert.ToBoolean(int.Parse(collection["DDLIfHasBgImg"]));
                if (!sample.IfHasBgImg)
                {
                    sample.BgImage = "";
                }
                else
                {
                    sample.BgImage = collection["BgImage"];
                }
                if (type == "UploadFile")  //处理上传背景图片
                {
                    HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
                    if (files.Count == 0)
                    {
                        return(Json(new { status = "Fail", message = "请先上传文件!" }, JsonRequestBehavior.AllowGet));
                    }
                    try
                    {
                        var fullFileName = $"/UploadFiles/BgImages/{Guid.NewGuid() + "_" + files[0].FileName}";
                        if (!System.IO.File.Exists(fullFileName))
                        {
                            files[0].SaveAs(Server.MapPath(fullFileName));
                        }
                        sample.BgImage    = fullFileName;
                        sample.IfHasBgImg = true;
                        return(Json(fullFileName));
                    }
                    catch (Exception ex)
                    {
                        log.Error(ex.Message);
                        return(Json(new { status = "Fail", message = ex.Message }, JsonRequestBehavior.AllowGet));
                    }
                }

                sample.Name     = collection["Name"];
                sample.ImageUrl = collection["ImageUrl"];

                List <ImageText> mainTexts = new List <ImageText>();
                ImageText        imageText = null;
                ImageFont        imageFont = null;
                int fontId = int.Parse(collection["Font"]);
                imageFont        = imageFontService.GetById(fontId);
                sample.Font      = imageFont.name;//第一个字的字体作为sample的字体,用于搜索过滤。
                sample.ImageFont = imageFont;
                string sizeStr = collection["Size"];
                sample = Utils.SetSize(sizeStr, sample);
                for (int i = 1; i < 5; i++)
                {
                    if (!string.IsNullOrEmpty(collection["Text" + i]))
                    {
                        imageText           = new ImageText();
                        imageText.Text      = collection["Text" + i];
                        imageText.Font      = imageFont.name;
                        imageText.imageFont = imageFont;
                        imageText.FontSize  = int.Parse(collection["FontSize" + i]);
                        imageText.PositionX = int.Parse(collection["PositionX" + i]);
                        imageText.PositionY = int.Parse(collection["PositionY" + i]);
                        imageText.Type      = (int)EnumTextType.MainText;
                        imageText.Order     = true;
                        mainTexts.Add(imageText);
                    }
                }
                sample.MainText       = mainTexts;
                sample.MainTextNumber = mainTexts.Count;
                // todo
                //if (!string.IsNullOrEmpty(collection["Text5"]))  //small text
                //{
                //    imageText = new ImageText();
                //    imageText.Text = collection["Text5"];
                //    imageText.Font = imageFont.name;
                //    imageText.imageFont = imageFont;
                //    imageText.FontSize = int.Parse(collection["FontSize5"]);
                //    imageText.PositionX = int.Parse(collection["PositionX5"]);
                //    imageText.PositionY = int.Parse(collection["PositionY5"]);
                //    imageText.Type = (int)EnumTextType.SmallText;
                //    imageText.Order = Convert.ToBoolean(int.Parse(collection["FontOrder"]));
                //    sample.IfHasSmallText = true;
                //    sample.SmallText = imageText;
                //}

                #endregion
                if (type == "保存")
                {
                    if (string.IsNullOrEmpty(sample.ImageUrl))
                    {
                        throw new Exception("请先生成样式图片!");
                    }
                    sampleService.Update(sample);
                    return(RedirectToAction("Index"));
                }
                else if (type == "CreateImage")
                {
                    try
                    {
                        InitData();
                        if (!CheckUpdateNameUnique(sample.Name, sample.Id))
                        {
                            return(Json(new { status = "Fail", message = "该名称已经存在,请使用唯一的名称!" }, JsonRequestBehavior.AllowGet));
                        }
                        string imageUrl = ImageHelp.CreateImage(sample, true, null);
                        return(Json(imageUrl));
                    }
                    catch (Exception ex)
                    {
                        log.Error(ex.Message);
                        return(Json(new { status = "Fail", message = ex.Message }, JsonRequestBehavior.AllowGet));
                    }
                }
                return(View());
            }
            catch (Exception ex)
            {
                InitData();
                ViewBag.Message = ex.Message;
                log.Error(ex);
                return(View("Update"));
            }
        }
Ejemplo n.º 8
0
        public ActionResult Create(FormCollection collection, string type)
        {
            try
            {
                #region init sample data
                Sample sample = new Sample();
                sample.IfHasBgImg = Convert.ToBoolean(int.Parse(collection["IfHasBgImage"]));
                if (!sample.IfHasBgImg)
                {
                    sample.BgImage = "";
                }
                else
                {
                    sample.BgImage = collection["BgImage"];
                }
                if (type == "UploadFile")  //处理上传背景图片
                {
                    HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
                    if (files.Count == 0)
                    {
                        return(Json(new { status = "Fail", message = "请先上传文件!" }, JsonRequestBehavior.AllowGet));
                    }
                    try
                    {
                        var fullFileName = $"/UploadFiles/BgImages/{Guid.NewGuid() + "_" + files[0].FileName}";
                        if (!System.IO.File.Exists(fullFileName))
                        {
                            files[0].SaveAs(Server.MapPath(fullFileName));
                        }
                        sample.BgImage    = fullFileName;
                        sample.IfHasBgImg = true;
                        return(Json(fullFileName));
                    }
                    catch (Exception ex)
                    {
                        log.Error(ex.Message);
                        return(Json(new { status = "Fail", message = ex.Message }, JsonRequestBehavior.AllowGet));
                    }
                }

                sample.Name      = collection["Name"];
                sample.ImageType = (EnumImageType)int.Parse(collection["ImageType"]);
                sample.Style     = (EnumImageStyle)int.Parse(collection["Style"]);
                sample.ImageUrl  = collection["ImageUrl"];
                string sizeStr = collection["Size"];
                sample = Utils.SetSize(sizeStr, sample);

                List <ImageText> mainTexts  = new List <ImageText>();
                List <ImageText> smallTexts = new List <ImageText>();
                ImageText        imageText  = null;
                ImageFont        imageFont  = null;
                int fontId = int.Parse(collection["Font"]);
                imageFont        = imageFontService.GetById(fontId);
                sample.Font      = imageFont.name;//第一个字的字体作为sample的字体,用于搜索过滤。
                sample.ImageFont = imageFont;

                var mainTextArray = collection.AllKeys.Where(t => t.StartsWith("Text"));  //把所有Text开头的拿出来,遍历。
                foreach (string str in mainTextArray)
                {
                    int    i    = Convert.ToInt32(str.Substring(4, 1)); //Text1 取后面的数字
                    string text = collection["Text" + i];
                    if (!string.IsNullOrEmpty(text))
                    {
                        imageText           = new ImageText();
                        imageText.Text      = text;
                        imageText.Font      = imageFont.name;
                        imageText.imageFont = imageFont;
                        imageText.FontSize  = int.Parse(collection["FontSize" + i]);
                        imageText.PositionX = int.Parse(collection["PositionX" + i]);
                        imageText.PositionY = int.Parse(collection["PositionY" + i]);
                        imageText.Type      = (int)EnumTextType.MainText;
                        imageText.Order     = true;
                        mainTexts.Add(imageText);
                    }
                }
                sample.MainText       = mainTexts;
                sample.MainTextNumber = mainTexts.Count;
                var smallTextArray = collection.AllKeys.Where(t => t.StartsWith("SmallText"));  //把所有SmallText开头的拿出来,遍历。
                foreach (string str in smallTextArray)
                {
                    int    i    = Convert.ToInt32(str.Substring(9, 1)); //SmallText1 取后面的数字
                    string text = collection["SmallText" + i];
                    if (!string.IsNullOrEmpty(text))                    //small text
                    {
                        imageText           = new ImageText();
                        imageText.Text      = text;
                        imageText.Font      = imageFont.name;
                        imageText.imageFont = imageFont;
                        imageText.FontSize  = int.Parse(collection["SmallFontSize" + i]);
                        imageText.PositionX = int.Parse(collection["SmallPositionX" + i]);
                        imageText.PositionY = int.Parse(collection["SmallPositionY" + i]);
                        imageText.Type      = (int)EnumTextType.SmallText;
                        imageText.Order     = Convert.ToBoolean(int.Parse(collection["SmallFontOrder" + i]));
                        smallTexts.Add(imageText);
                    }
                }
                sample.SmallText = smallTexts;
                if (smallTexts.Count > 0)
                {
                    sample.IfHasSmallText  = true;
                    sample.SmallTextNumber = smallTexts.Count;
                }

                #endregion
                if (type == "保存")
                {
                    if (string.IsNullOrEmpty(sample.ImageUrl))
                    {
                        throw new Exception("请先生成样式图片!");
                    }
                    sampleService.Insert(sample);
                    var logs = new Logs {
                        Action = EnumAction.新建预设样式, Detail = sample.Name, UserId = UserHelper.GetCurrentUser.Id, Time = DateTime.Now
                    };
                    logService.Insert(logs);
                    return(RedirectToAction("Index"));
                }
                else if (type == "CreateImage")
                {
                    try
                    {
                        InitData();
                        if (!CheckNameUnique(sample.Name))
                        {
                            return(Json(new { status = "Fail", message = "该名称已经存在,请使用唯一的名称!" }, JsonRequestBehavior.AllowGet));
                        }
                        string imageUrl = ImageHelp.CreateImage(sample, true, null);
                        return(Json(imageUrl));
                    }
                    catch (Exception ex)
                    {
                        log.Error(ex.Message);
                        return(Json(new { status = "Fail", message = ex.Message }, JsonRequestBehavior.AllowGet));
                    }
                }
                return(View());
            }
            catch (Exception ex)
            {
                InitData();
                ViewBag.Message = ex.Message;
                log.Error(ex);
                return(View("Create"));
            }
        }
Ejemplo n.º 9
0
        public static Sample CreateYuanXing()
        {
            int blank    = 25;
            int textSize = 60;
            int half     = 148;
            int boarder  = 0;

            List <ImageText> ImageTexts = new List <ImageText>();
            ImageText        ImageText1 = new ImageText
            {
                Font      = @"D:\pictures\AdobeHeitiStd-Regular.otf",
                PositionX = half,
                PositionY = boarder + blank,
                FontSize  = textSize,
                Text      = "国"
            };
            ImageText ImageText2 = new ImageText
            {
                Font      = @"D:\pictures\AdobeHeitiStd-Regular.otf",
                PositionX = half,
                PositionY = half + blank,
                FontSize  = textSize,
                Text      = "圆"
            };
            ImageText ImageText3 = new ImageText
            {
                Font      = @"D:\pictures\AdobeHeitiStd-Regular.otf",
                PositionX = boarder,
                PositionY = boarder + blank,
                FontSize  = textSize,
                Text      = "园"
            };
            ImageText ImageText4 = new ImageText
            {
                Font      = @"D:\pictures\AdobeHeitiStd-Regular.otf",
                PositionX = boarder,
                PositionY = half + blank,
                FontSize  = textSize,
                Text      = "围"
            };

            ImageTexts.Add(ImageText1);
            ImageTexts.Add(ImageText2);
            ImageTexts.Add(ImageText3);
            ImageTexts.Add(ImageText4);

            ImageText smallText = new ImageText
            {
                Text      = "",
                Font      = "",
                FontSize  = 28,
                PositionX = 100,
                PositionY = 100
            };

            Sample sample = new Sample()
            {
                ImageType      = EnumImageType.圆形章,
                Style          = EnumImageStyle.阴文,
                ImageSizeX     = 30,
                ImageSizeY     = 0,
                MainTextNumber = 4,
                BgImage        = "", //@"D:\pictures\fang-yang.png",
                MainText       = ImageTexts,
                SmallText      = smallText,
                IfHasSmallText = false
            };

            return(sample);
        }
Ejemplo n.º 10
0
 public void StartWith(ImageText imageText)
 {
     CanvasView?.StartWith(imageText.Image);
 }
Ejemplo n.º 11
0
 public override string ToString()
 {
     return(ImageText.ToString());
 }
Ejemplo n.º 12
0
 private void OnEnable()
 {
     //Debug.Log("ImageTextEditor");
     t     = target as ImageText;
     group = t.gameObject.GetComponent <GridLayoutGroup>();
 }