示例#1
0
        private void BtnCreate_Click(object sender, EventArgs e)
        {
            if (sender == null)
            {
                return;
            }

            if (renderedSelectedBox != null)
            {
                return;
            }

            EditorImage dImg = (EditorImage)treeView1.SelectedNode.Tag;

            dImg.AddBox(new EditorBox(new DataBox
            {
                Top    = 100,
                Left   = 100,
                Height = 200,
                Width  = 100,
                Label  = "new box"
            }));

            pBox.Image = dImg.Render();
        }
示例#2
0
        //public virtual void Editor_Generate(string[] str)
        //{
        //    if (PageInfo.World == null) return;
        //    EditorVolume editor = new EditorVolume();
        //    editor.Texture_Up = Info.UrlToImage(str[1]);
        //    editor.Texture_In = Info.UrlToImage(str[2]);
        //    editor.Texture_Out = Info.UrlToImage(str[3]);
        //    string name = str[4] + ".png";

        //    string p = Info.address_Images_HDD + @"/Templates/";
        //    if (!Directory.Exists(p))
        //        Directory.CreateDirectory(p);
        //    p += name;

        //    editor.OnImage(p);

        //    string URL = Info.ImageToUrl(p);

        //    TemplateJSON template = new TemplateJSON(name, 1, 1, URL);
        //    if (Editor != null && template != null)
        //        Editor.Template(template);

        //    Add(new MsgJSON_Object("TEMPLATES", template));
        //    Add(new MsgJSON_String("EDITOR_GENERATE", URL));
        //}
        public virtual void Editor_Generate(string[] str)
        {
            if (PageInfo.World == null)
            {
                return;
            }
            EditorImage editor = new EditorImage();

            editor.Texture_Z = Info.UrlToImage(str[1]);
            editor.Texture_Y = Info.UrlToImage(str[2]);
            editor.Texture_X = Info.UrlToImage(str[3]);
            string name = str[4] + ".png";

            string p = Info.address_Images_HDD + @"/Templates/";

            if (!Directory.Exists(p))
            {
                Directory.CreateDirectory(p);
            }
            p += name;

            editor.OnImageCube(p);

            string URL = Info.ImageToUrl(p);

            TemplateJSON template = new TemplateJSON(name, 4, 4, URL);

            if (Editor != null && template != null)
            {
                Editor.Template(template);
            }

            Add(new MsgJSON_Object("TEMPLATES", template));
            Add(new MsgJSON_String("EDITOR_GENERATE", URL));
        }
示例#3
0
        private void Button1_Click_1(object sender, EventArgs e)
        {
            if (sender == null)
            {
                return;
            }

            if (renderedSelectedBox == EditorBox.None)
            {
                return;
            }

            EditorImage dImg = (EditorImage)treeView1.SelectedNode.Tag;

            Image region = dImg.GetImage(renderedSelectedBox);

            SaveFileDialog sfdlg = new SaveFileDialog();

            if (sfdlg.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            if (string.IsNullOrEmpty(sfdlg.FileName))
            {
                return;
            }

            region.Save(sfdlg.FileName);
            region.Dispose();
        }
示例#4
0
        private void AddImageToDataset(string fPath)
        {
            try
            {
                if (t == null)
                {
                    t = new EditorDataSet(new DataSet
                    {
                        Name    = @"Temp",
                        Comment = @"Draft"
                    });
                }

                EditorImage addImg = t.AddImage(fPath);

                treeView1.Nodes.Clear();

                TreeNode root = treeView1.Nodes.Add("{0} - [{1} image(s)]", t.Name, t.Images.Count);

                foreach (var dsImg in t.Images)
                {
                    root.Nodes.Add(new TreeNode
                    {
                        Tag  = dsImg,
                        Text = dsImg.ToString()
                    });
                }
            }
            catch (Exception)
            {
            }
        }
示例#5
0
        private void BtnApply_Click(object sender, EventArgs e)
        {
            renderedSelectedBox.SetLabel(labelTxt.Text);
            datasetService.Save(t.DlibObject);
            EditorImage dImg = (EditorImage)treeView1.SelectedNode.Tag;

            pBox.Image = renderedSelectedBox.ChangeState(dImg);
        }
示例#6
0
        private void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (sender == null)
            {
                return;
            }

            if (e.Node.Tag == null)
            {
                return;
            }

            EditorImage dImg = (EditorImage)e.Node.Tag;

            pBox.Image?.Dispose();
            pBox.Image = dImg.Render();

            editorStatusLabel.Text = string.Format("Image {0} has {1} boxes", dImg.ToString(), dImg.Boxes.Count);
        }
示例#7
0
    public void DrawShadow()
    {
        Texture2D tex = EditorImage.GetImage(EditorImage.ImageType.SHADOW);

        Rect shadowRect = new Rect(canvasRect.width - tex.width / 4, 0, tex.width / 4, canvasRect.height);

        GUI.DrawTextureWithTexCoords(shadowRect, tex, EditorImage.ShadowRect[EditorImage.ShadowDirect.RIGHT], true);// 2, canvasRect.height / tex.height / 2), true);

        shadowRect.x = 0;
        GUI.DrawTextureWithTexCoords(shadowRect, tex, EditorImage.ShadowRect[EditorImage.ShadowDirect.LEFT], true);

        shadowRect.width  = canvasRect.width;
        shadowRect.height = tex.height / 4;
        shadowRect.x      = 0;
        shadowRect.y      = 0;

        GUI.DrawTextureWithTexCoords(shadowRect, tex, EditorImage.ShadowRect[EditorImage.ShadowDirect.TOP], true);
        shadowRect.y = canvasRect.height - tex.height / 4;
        GUI.DrawTextureWithTexCoords(shadowRect, tex, EditorImage.ShadowRect[EditorImage.ShadowDirect.BOTTOM], true);
    }
示例#8
0
        private void OnImageClick(object sender, MouseEventArgs e)
        {
            if (sender == null)
            {
                return;
            }

            if (pBox.Image == null)
            {
                return;
            }

            EditorImage t = (EditorImage)treeView1.SelectedNode.Tag;

            if (t == null)
            {
                return;
            }

            if (e.Button == MouseButtons.Left)
            {
                /* Box su cui si è cliccato null altrimenti */
                EditorBox clickedBox = t.GetBox(e.X, e.Y);

                /* Se la zona su cui si è cliccato non ha una box */
                if (clickedBox == EditorBox.None)
                {
                    t.Boxes.FindAll(b => b.IsSelected).ForEach(b => b.ChangeState(t));
                    return;
                }

                if (renderedSelectedBox != clickedBox)
                {
                    if (renderedSelectedBox != EditorBox.None)
                    {
                        renderedSelectedBox?.ChangeState(t);
                    }
                }

                renderedSelectedBox = clickedBox;

                Image rendered = renderedSelectedBox?.ChangeState(t); //365ms

                if (rendered == null)
                {
                    return;
                }

                /* Se è stata selezionata una box imposta l'editor dati */
                SetEditorData(rendered);                              // 1270ms

                pBox.Image.Dispose();
                pBox.Image        = rendered;
                boxEditor.Enabled = true;

                return;
            }

            if (e.Button == MouseButtons.Right)
            {
                FilterOptions fOpts   = new FilterOptions();
                Bitmap        bmpMask = new Bitmap(t.File);

                EditorImage dImg = (EditorImage)treeView1.SelectedNode.Tag;

                bmpMask = new Bitmap(t.File);

                FillRegionDetector det = new FillRegionDetector(e.Location);

                bmpMask = new ContrastFilter(0.8f).Apply(bmpMask);
                det.Apply(bmpMask);

                Rectangle area = det.Detected;

                if (area.Width <= 0 || area.Height <= 0)
                {
                    MessageBox.Show(@"No valid box detected!", @"No box detected", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    bmpMask.Dispose();
                    return;
                }

                dImg.AddBox(new EditorBox(new DataBox
                {
                    Top    = area.Top,
                    Left   = area.Left,
                    Height = area.Height,
                    Width  = area.Width,
                    Label  = "new box"
                }));


                bmpMask.Dispose();
                pBox.Image.Dispose();
                pBox.Image = dImg.Render();

                return;
            }
        }
示例#9
0
        private void RenderCurrentImage()
        {
            EditorImage dImg = (EditorImage)treeView1.SelectedNode.Tag;

            pBox.Image = dImg.Render();
        }