コード例 #1
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            Template.Name = txtName.Text.Trim();
            Template.Text = txtText.Text.Trim();

            OutlineTextProcessor outlineTextProcessor = new OutlineTextProcessor(fakeModelItem, Template, fontPath);

            resultImage = outlineTextProcessor.GetImage();

            using (MemoryStream memoryStream = new MemoryStream())
            {
                resultImage.Save(memoryStream, ImageFormat.Png);
                Template.Image = memoryStream.ToArray();
            }

            this.DialogResult = DialogResult.OK;
            this.Close();
        }
コード例 #2
0
        private void UpdateImage()
        {
            if (!String.IsNullOrWhiteSpace(fakeModelItem.Text))
            {
                fakeModelItem.FontColor = ColorTranslator.ToHtml(Color.FromArgb(Template.TextColor1));

                OutlineTextProcessor outlineTextProcessor = new OutlineTextProcessor(fakeModelItem, Template, fontPath);
                resultImage = outlineTextProcessor.GetImage();
            }
            else
            {
                resultImage = new Bitmap(1, 1);
            }

            lbldWidth.Text  = resultImage.Width.ToString();
            lbldHeight.Text = resultImage.Height.ToString();

            panel1.Refresh();
        }
コード例 #3
0
        public static Bitmap GetResultImage(Model model)
        {
            string fontPath = GetFontPath();

            IRepository <TextTemplate>    _textTemplateRepository    = new Repository <TextTemplate>(new DbContextFactory());
            IRepository <ClipartTemplate> _clipartTemplateRepository = new Repository <ClipartTemplate>(new DbContextFactory());

            if (model == null)
            {
                return(null); //ToDo
            }
            ImageConverter ic        = new ImageConverter();
            Image          img       = (Image)ic.ConvertFrom(model.Image);
            Bitmap         bmpResult = new Bitmap(img);

            Graphics graphics = Graphics.FromImage(bmpResult);

            foreach (var modelItem in model.Items)
            {
                TemplateBase template = null;

                if (modelItem.ItemType == 0)
                {
                    template = _textTemplateRepository.GetAllWithInclude("Font").Where(p => p.Id == modelItem.TemplateId).FirstOrDefault();
                }
                else
                {
                    template = _clipartTemplateRepository.GetAllWithInclude("Font").Where(p => p.Id == modelItem.TemplateId).FirstOrDefault();
                }

                OutlineTextProcessor outlineTextProcessor = new OutlineTextProcessor(modelItem, template, fontPath);
                Bitmap image = outlineTextProcessor.GetImage();

                graphics.DrawImage((Image)image, new Point(modelItem.PositionLeft, modelItem.PositionTop));
            }

            graphics.Flush();
            graphics.Dispose();

            return(bmpResult);
        }
コード例 #4
0
        public HttpResponseMessage ModelItem(int id, [FromUri] ModelItem modelItem)
        {
            TemplateBase template = null;

            if (!ModelState.IsValid)
            {
                return(new HttpResponseMessage(HttpStatusCode.BadRequest));
            }

            if (modelItem.ItemType == 0)
            {
                template = _textTemplateRepository.GetAllWithInclude("Font").Where(p => p.Id == modelItem.TemplateId).FirstOrDefault();
            }
            else
            {
                template = _clipartTemplateRepository.GetAllWithInclude("Font").Where(p => p.Id == modelItem.TemplateId).FirstOrDefault();
            }

            if (template == null)
            {
                return(new HttpResponseMessage(HttpStatusCode.BadRequest));
            }

            string fontPath = HostingEnvironment.MapPath("~/fonts/");

            OutlineTextProcessor outlineTextProcessor = new OutlineTextProcessor(modelItem, template, fontPath);
            Bitmap image = outlineTextProcessor.GetImage();

            using (MemoryStream memoryStream = new MemoryStream())
            {
                image.Save(memoryStream, ImageFormat.Png);

                HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);

                response.Content = new ByteArrayContent(memoryStream.ToArray());
                response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
                return(response);
            }
        }
コード例 #5
0
        //ToDo -
        private void ModelToSampleForm_Load(object sender, EventArgs e)
        {
            string fontPath = @"E:\xWork\Apps\Work\AddTextToImage\AddTextToImage.WebUI\fonts\";

            model = _modelRepository.Get(ModelId);

            if (model != null)
            {
                ImageConverter ic        = new ImageConverter();
                Image          img       = (Image)ic.ConvertFrom(model.Image);
                Bitmap         bmpResult = new Bitmap(img);

                Graphics graphics = Graphics.FromImage(bmpResult);

                foreach (var modelItem in model.Items)
                {
                    TemplateBase template = null;

                    if (modelItem.ItemType == 0)
                    {
                        template = _textTemplateRepository.GetAllWithInclude("Font").Where(p => p.Id == modelItem.TemplateId).FirstOrDefault();
                    }
                    else
                    {
                        template = _clipartTemplateRepository.GetAllWithInclude("Font").Where(p => p.Id == modelItem.TemplateId).FirstOrDefault();
                    }

                    OutlineTextProcessor outlineTextProcessor = new OutlineTextProcessor(modelItem, template, fontPath);
                    Bitmap image = outlineTextProcessor.GetImage();

                    graphics.DrawImage((Image)image, new Point(modelItem.PositionLeft, modelItem.PositionTop));
                }

                resultImage = bmpResult;

                graphics.Flush();
                graphics.Dispose();
            }
        }
コード例 #6
0
        public HttpResponseMessage Result(int id)
        {
            HttpResponseMessage response;

            if (!ModelState.IsValid)
            {
                return(new HttpResponseMessage(HttpStatusCode.BadRequest));
            }

            var model = _modelRepository.Get(id);

            if (model == null)
            {
                return(new HttpResponseMessage(HttpStatusCode.BadRequest));
            }

            ImageConverter ic        = new ImageConverter();
            Image          img       = (Image)ic.ConvertFrom(model.Image);
            Bitmap         bmpResult = new Bitmap(img);

            //FromImage method creates a new Graphics from the specified Image.
            Graphics graphics = Graphics.FromImage(bmpResult);

            foreach (var modelItem in model.Items)
            {
                TemplateBase template = null;

                if (modelItem.ItemType == 0)
                {
                    template = _textTemplateRepository.GetAllWithInclude("Font").Where(p => p.Id == modelItem.TemplateId).FirstOrDefault();
                }
                else
                {
                    template = _clipartTemplateRepository.GetAllWithInclude("Font").Where(p => p.Id == modelItem.TemplateId).FirstOrDefault();
                }

                if (template != null)
                {
                    string fontPath = HostingEnvironment.MapPath("~/fonts/");

                    OutlineTextProcessor outlineTextProcessor = new OutlineTextProcessor(modelItem, template, fontPath);
                    Bitmap image = outlineTextProcessor.GetImage();

                    graphics.DrawImage((Image)image, new Point(modelItem.PositionLeft, modelItem.PositionTop));
                }
            }

            response = new HttpResponseMessage(HttpStatusCode.OK);

            using (MemoryStream memoryStream = new MemoryStream())
            {
                bmpResult.Save(memoryStream, ImageFormat.Png);

                response.Content = new ByteArrayContent(memoryStream.ToArray());
                response.Content.Headers.ContentType                 = new MediaTypeHeaderValue("image/png");
                response.Content.Headers.ContentDisposition          = new ContentDispositionHeaderValue("attachment");
                response.Content.Headers.ContentDisposition.FileName = "result.png";
            }

            graphics.Flush();
            graphics.Dispose();

            return(response);
        }
コード例 #7
0
        private void tsbtnToSample_Click(object sender, EventArgs e)
        {
            string fontPath = @"E:\xWork\Apps\Work\AddTextToImage\AddTextToImage.WebUI\fonts\";
            Bitmap bmpResult;

            if (model != null)
            {
                ImageConverter ic  = new ImageConverter();
                Image          img = (Image)ic.ConvertFrom(model.Image);
                bmpResult = new Bitmap(img);

                Graphics graphics = Graphics.FromImage(bmpResult);

                foreach (var modelItem in model.Items)
                {
                    TemplateBase template = null;

                    if (modelItem.ItemType == 0)
                    {
                        template =
                            (from t in _textTemplateRepository.GetAllWithInclude("Font")
                             where t.Id == modelItem.TemplateId
                             select t).FirstOrDefault();
                    }
                    else
                    {
                        template =
                            (from t in _clipartTemplateRepository.GetAllWithInclude("Font")
                             where t.Id == modelItem.TemplateId
                             select t).FirstOrDefault();
                    }

                    OutlineTextProcessor outlineTextProcessor = new OutlineTextProcessor(modelItem, template, fontPath);
                    Bitmap image = outlineTextProcessor.GetImage();

                    graphics.DrawImage((Image)image, new Point(modelItem.PositionLeft, modelItem.PositionTop));
                }

                resultImage = bmpResult;

                graphics.Flush();
                graphics.Dispose();
            }



            Sample sample = new Sample();

            sample.Items = new List <SampleItem>();

            sample.ContentType = model.ContentType;
            sample.Image       = model.Image;
            sample.ImageWidth  = model.ImageWidth;
            sample.ImageHeight = model.ImageHeight;

            Bitmap bmpThumbnail = Utilities.Utils.ResizeImage(resultImage, 360, 270);

            sample.Thumbnail = Utilities.Utils.BitmapToByteArray(bmpThumbnail);

            foreach (ModelItem modelItem in model.Items)
            {
                SampleItem sampleItem = new SampleItem();

                sampleItem.ItemType     = modelItem.ItemType;
                sampleItem.PositionTop  = modelItem.PositionTop;
                sampleItem.PositionLeft = modelItem.PositionLeft;
                sampleItem.Text         = modelItem.Text;
                sampleItem.TemplateId   = modelItem.TemplateId;
                sampleItem.FontSize     = modelItem.FontSize;
                sampleItem.FontColor    = modelItem.FontColor;
                sampleItem.Rotation     = modelItem.Rotation;

                sample.Items.Add(sampleItem);
            }

            _sampleRepository.Add(sample);
            _sampleRepository.Save();
        }