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)); }
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); }
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); }
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; } } } }
public void StartWith(ImageText imageText) { }
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)); }
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")); } }
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")); } }
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); }
public void StartWith(ImageText imageText) { CanvasView?.StartWith(imageText.Image); }
public override string ToString() { return(ImageText.ToString()); }
private void OnEnable() { //Debug.Log("ImageTextEditor"); t = target as ImageText; group = t.gameObject.GetComponent <GridLayoutGroup>(); }