Exemplo n.º 1
0
        public Form1()
        {
            InitializeComponent();

            graphics = panel1.CreateGraphics();
            var pen = new System.Drawing.Pen(System.Drawing.Color.Black);

            twoDimensional = new TwoDimensionalDrawer()
            {
                Graphics = graphics, Pen = pen
            };

            threeDimensional = new ThreeDimensionalDrawer()
            {
                Graphics = graphics, Pen = pen
            };

            shadedRectangleDrawer = new ShadedRectangleDrawer()
            {
                Graphics             = graphics, Pen = pen,
                TwoDimensionalDrawer = twoDimensional
            };

            imageDrawer = new ImageDrawer()
            {
                ThreeDimensionalDrawer = threeDimensional,
                TwoDimensionalDrawer   = twoDimensional,
                ShadedRectangleDrawer  = shadedRectangleDrawer
            };

            image             = new Image(panel1.Height, panel1.Width);
            imageSerializator = new XmlImageSerializator();
        }
Exemplo n.º 2
0
        private void CopyToClipboard(object sender, RoutedEventArgs e)
        {
            try
            {
                MimeType[] mimeTypes = null;

                if (_lastSelectedBlock != null)
                {
                    mimeTypes = _editor.GetSupportedExportMimeTypes(_lastSelectedBlock);
                }

                if (mimeTypes != null && mimeTypes.Contains(MimeType.OFFICE_CLIPBOARD))
                {
                    // export block to a file
                    var localFolder   = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
                    var clipboardPath = Path.Combine(localFolder, "MyScript", "tmp/clipboard.gvml");
                    var drawer        = new ImageDrawer();

                    drawer.ImageLoader = UcEditor.ImageLoader;

                    _editor.Export_(_lastSelectedBlock, clipboardPath.ToString(), MimeType.OFFICE_CLIPBOARD, drawer);

                    // read back exported data
                    var clipboardData   = File.ReadAllBytes(clipboardPath);
                    var clipboardStream = new MemoryStream(clipboardData);

                    // store the data into clipboard
                    Clipboard.SetData(MimeTypeF.GetTypeName(MimeType.OFFICE_CLIPBOARD), clipboardStream);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Exemplo n.º 3
0
        /*
         * Constructors
         */

        public ImageSmartCIO(GroupNode specSnippet)
            : base(new Panel(), specSnippet)
        {
            if (specSnippet.IsObject())
            {
                _imageState = (ApplianceState)_objects[SINGLE_STATE];
            }
            else
            {
                _imageState = (ApplianceState)_objects[IMAGE_STATE_NAME];

                // look for labels in state if none were found in group
                if (_labels == null)
                {
                    _labels = _imageState.Labels;
                }
            }

            if (_imageState.Type.ValueSpace is BinarySpace)
            {
                doNotRenderObject(_imageState);
            }

            Panel p = (Panel)GetControl();

            _imageDrawer = new ImageDrawer();
            p.Controls.Add(_imageDrawer);

            if (_labels != null)
            {
                _imageLabel          = new Label();
                _imageLabel.Text     = _labels.GetShortestLabel();
                _imageLabel.Location = new Point(0, 0);
                _imageLabel.Width    = p.Width;
                _imageLabel.Height   = (int)Globals.MeasureString(_imageLabel.Text, _imageLabel.Font).Height;
                p.Controls.Add(_imageLabel);

                _imageDrawer.Location = new Point(0, _imageLabel.Height + IMAGE_SPACER);
                _imageDrawer.Size     = new Size(p.Width, p.Height - _imageLabel.Height);
            }
            else
            {
                _imageDrawer.Location = new Point(0, 0);
                _imageDrawer.Size     = p.Size;
            }

            p.Resize += new EventHandler(p_Resize);

            _imageState.VariableTable.BinaryDataChanged += new PUC.VariableTable.BinaryEventHandler(VariableTable_BinaryDataChanged);
            _imageState.ValueChangedEvent += new PUC.ApplianceState.ValueChangedHandler(imageState_ValueChangedEvent);
        }
Exemplo n.º 4
0
        private void SaveSubtitles()
        {
            DirectoryInfo di    = new DirectoryInfo(Environment.CurrentDirectory);
            List <string> files = new List <string>();
            Regex         r     = new Regex(@"Line\d*\.bmp");

            foreach (var f in di.GetFiles("*.bmp"))
            {
                if (r.IsMatch(f.Name))
                {
                    new FileInfo(f.FullName).Delete();
                }
            }
            for (int currentline = 0; currentline < textBox.Lines.Length; currentline++)
            {
                string text   = "";
                Bitmap result = null;
                if (textBox.Lines[currentline].Length != 0)
                {
                    result = ImageDrawer.LineBitmap(textBox.Lines[currentline]);
                    text   = textBox.Lines[currentline];
                    while (text.EndsWith(" ") || text.EndsWith(" "))
                    {
                        text = text.Remove(text.Length - 1, 1);
                    }
                    if (text.EndsWith(":") || text.EndsWith(":"))
                    {
                        continue;
                    }
                    if (text.Contains("%"))
                    {
                        text = text.Split('%')[0];
                    }
                    else if (text.Contains("%"))
                    {
                        text = text.Split('%')[0];
                    }
                    if (text == "")
                    {
                        continue;
                    }
                    if (result != null)
                    {
                        result.Save(String.Format("Line{0}.bmp", currentline));
                    }
                }
            }
            Notice("印刷完了");
        }
Exemplo n.º 5
0
        private static void Main(string[] args)
        {
            var randomLayouter = LayouterWithRandomSizeRectangles();

            Console.WriteLine("Random generated");
            var simpleLayouter = SimpleLayouter();

            Console.WriteLine("Simple generated");

            var imageWriter = new ImageWriter();
            var imageDrawer = new ImageDrawer();

            imageWriter.Write(imageDrawer.Draw(randomLayouter), "random.png");
            imageWriter.Write(imageDrawer.Draw(simpleLayouter), "simple.png");
        }
Exemplo n.º 6
0
    public static void testImageCompressor()
    {
        Vector2d <uint> imageSize = new Vector2d <uint>(5, 7);

        Map2d <float> stimulus = new Map2d <float>(imageSize);

        ImageDrawer <float> drawer = new ImageDrawer <float>();

        // draw candidate
        drawer.drawHorizontalLine(stimulus, new Vector2d <uint>(1, 1), 3, 1.0f);

        TestEncoder testEncoder = new TestEncoder();

        TestEncoder.Candidate bestCandidate = testEncoder.encode(stimulus);


        int debug = 1;
    }
Exemplo n.º 7
0
    private static void DrawTransitionSpriteSwap(Selectable selectable)
    {
        using (new GUILayout.HorizontalScope())
        {
            GUILayout.Label("Target Graphic", NitroxGUILayout.DrawerLabel, GUILayout.Width(NitroxGUILayout.DEFAULT_LABEL_WIDTH));
            NitroxGUILayout.Separator();
            if (GUILayout.Button("Jump to", GUILayout.Width(NitroxGUILayout.DEFAULT_LABEL_WIDTH)))
            {
                NitroxServiceLocator.Cache <SceneDebugger> .Value.UpdateSelectedObject(selectable.targetGraphic.gameObject);
            }
        }

        using (new GUILayout.HorizontalScope())
        {
            GUILayout.Label("Highlighted Sprite", NitroxGUILayout.DrawerLabel, GUILayout.Width(NitroxGUILayout.DEFAULT_LABEL_WIDTH));
            NitroxGUILayout.Separator();
            ImageDrawer.DrawTexture(selectable.spriteState.highlightedSprite.texture);
        }

        using (new GUILayout.HorizontalScope())
        {
            GUILayout.Label("Pressed Sprite", NitroxGUILayout.DrawerLabel, GUILayout.Width(NitroxGUILayout.DEFAULT_LABEL_WIDTH));
            NitroxGUILayout.Separator();
            ImageDrawer.DrawTexture(selectable.spriteState.pressedSprite.texture);
        }

        using (new GUILayout.HorizontalScope())
        {
            GUILayout.Label("Selected Sprite", NitroxGUILayout.DrawerLabel, GUILayout.Width(NitroxGUILayout.DEFAULT_LABEL_WIDTH));
            NitroxGUILayout.Separator();
            ImageDrawer.DrawTexture(selectable.spriteState.selectedSprite.texture);
        }

        using (new GUILayout.HorizontalScope())
        {
            GUILayout.Label("Disabled Sprite", NitroxGUILayout.DrawerLabel, GUILayout.Width(NitroxGUILayout.DEFAULT_LABEL_WIDTH));
            NitroxGUILayout.Separator();
            ImageDrawer.DrawTexture(selectable.spriteState.disabledSprite.texture);
        }
    }
        private async void Popup_CommandHandler_OfficeClipboard(FlyoutCommand command)
        {
            try
            {
                MimeType[] mimeTypes = null;

                if (_lastSelectedBlock != null)
                {
                    mimeTypes = _editor.GetSupportedExportMimeTypes(_lastSelectedBlock);
                }

                if (mimeTypes != null && mimeTypes.Contains(MimeType.OFFICE_CLIPBOARD))
                {
                    // export block to a file
                    var localFolder   = ApplicationData.Current.LocalFolder.Path;
                    var clipboardPath = System.IO.Path.Combine(localFolder.ToString(), "tmp/clipboard.gvml");
                    var drawer        = new ImageDrawer(_editor.Renderer.DpiX, _editor.Renderer.DpiY);

                    drawer.ImageLoader = UcEditor.ImageLoader;

                    _editor.Export_(_lastSelectedBlock, clipboardPath.ToString(), MimeType.OFFICE_CLIPBOARD, drawer);

                    // read back exported data
                    var clipboardData   = File.ReadAllBytes(clipboardPath);
                    var clipboardStream = new MemoryStream(clipboardData);

                    // store the data into clipboard
                    Windows.ApplicationModel.DataTransfer.Clipboard.Clear();
                    var clipboardContent = new Windows.ApplicationModel.DataTransfer.DataPackage();
                    clipboardContent.SetData(MimeTypeF.GetTypeName(MimeType.OFFICE_CLIPBOARD), clipboardStream.AsRandomAccessStream());
                    Windows.ApplicationModel.DataTransfer.Clipboard.SetContent(clipboardContent);
                }
            }
            catch (Exception ex)
            {
                MessageDialog msgDialog = new MessageDialog(ex.ToString());
                await msgDialog.ShowAsync();
            }
        }
Exemplo n.º 9
0
        private void PrintSubtitle()
        {
            Bitmap result = null;

            if (pictureBox1.Image != null)
            {
                pictureBox1.Image.Dispose();
            }
            if (textBox.Lines.Length != 0)
            {
                int currentline = 0;
                int charactors  = 0;
                while (true)
                {
                    charactors += textBox.Lines[currentline].Length + 1;//+1は改行コード
                    if (charactors > textBox.SelectionStart)
                    {
                        break;
                    }
                    else if (currentline >= textBox.Lines.Length - 1)
                    {
                        break;
                    }
                    currentline++;
                }
                if (currentline < 0 || currentline >= textBox.Lines.Length)
                {
                    return;
                }
                result = ImageDrawer.LineBitmap(textBox.Lines[currentline]);
            }
            if (pictureBox1.Image != null)
            {
                pictureBox1.Image.Dispose();
            }
            //PictureBox1に表示する
            pictureBox1.Image = result;
        }
Exemplo n.º 10
0
        private void Export(object sender, RoutedEventArgs e)
        {
            var part = _editor.Part;

            if (part == null)
            {
                return;
            }

            var onRawContent = part.Type == "Raw Content";
            var contentBlock = onRawContent ? _editor.GetRootBlock() : _lastSelectedBlock;

            if (contentBlock == null)
            {
                return;
            }

            var mimeTypes = _editor.GetSupportedExportMimeTypes(contentBlock);

            if (mimeTypes == null)
            {
                return;
            }

            if (mimeTypes.Count() == 0)
            {
                return;
            }

            string filterList = "";

            for (int i = 0; i < mimeTypes.Count(); ++i)
            {
                // format filter as "name|extension1;extension2;...;extensionX"
                var    extensions = MimeTypeF.GetFileExtensions(mimeTypes[i]).Split(',');
                string filter     = MimeTypeF.GetName(mimeTypes[i]) + "|";

                for (int j = 0; j < extensions.Count(); ++j)
                {
                    if (j > 0)
                    {
                        filter += ";";
                    }

                    filter += "*" + extensions[j];
                }

                if (i > 0)
                {
                    filterList += "|";
                }

                filterList += filter;
            }

            // Show save dialog
            {
                Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();

                dlg.FileName   = "Interactive Ink Document"; // Default file name
                dlg.DefaultExt = System.String.Empty;        // Default file extension
                dlg.Filter     = filterList;                 // Filter files by extension

                bool?result = dlg.ShowDialog();

                if ((bool)result)
                {
                    var filePath    = dlg.FileName;
                    var filterIndex = dlg.FilterIndex - 1;
                    var extensions  = MimeTypeF.GetFileExtensions(mimeTypes[filterIndex]).Split(',');

                    if (extensions.Count() > 0)
                    {
                        int ext;

                        for (ext = 0; ext < extensions.Count(); ++ext)
                        {
                            if (filePath.EndsWith(extensions[ext], StringComparison.OrdinalIgnoreCase))
                            {
                                break;
                            }
                        }

                        if (ext >= extensions.Count())
                        {
                            filePath += extensions[0];
                        }

                        try
                        {
                            var drawer = new ImageDrawer();

                            drawer.ImageLoader = UcEditor.ImageLoader;

                            _editor.WaitForIdle();
                            _editor.Export_(contentBlock, filePath, drawer);

                            System.Diagnostics.Process.Start(filePath);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.ToString(), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                }
            }
        }
        private async void Popup_CommandHandler_Export(FlyoutCommand command)
        {
            var part = _editor.Part;

            if (part == null)
            {
                return;
            }

            if (_lastSelectedBlock == null)
            {
                return;
            }

            var mimeTypes = _editor.GetSupportedExportMimeTypes(_lastSelectedBlock);

            if (mimeTypes == null)
            {
                return;
            }

            if (mimeTypes.Count() == 0)
            {
                return;
            }

            // Show export dialog
            var fileName = await ChooseExportFilename(mimeTypes);

            if (!string.IsNullOrEmpty(fileName))
            {
                var localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
                var item        = await localFolder.TryGetItemAsync(fileName);

                string filePath = null;

                if (item != null)
                {
                    ContentDialog overwriteDialog = new ContentDialog
                    {
                        Title               = "File Already Exists",
                        Content             = "A file with that name already exists, overwrite it?",
                        PrimaryButtonText   = "Cancel",
                        SecondaryButtonText = "Overwrite"
                    };

                    ContentDialogResult result = await overwriteDialog.ShowAsync();

                    if (result == ContentDialogResult.Primary)
                    {
                        return;
                    }

                    filePath = item.Path.ToString();
                }
                else
                {
                    filePath = System.IO.Path.Combine(localFolder.Path.ToString(), fileName);
                }

                try
                {
                    var drawer = new ImageDrawer(_editor.Renderer.DpiX, _editor.Renderer.DpiY);

                    drawer.ImageLoader = UcEditor.ImageLoader;

                    _editor.WaitForIdle();
                    _editor.Export_(_lastSelectedBlock, filePath, drawer);

                    var file = await StorageFile.GetFileFromPathAsync(filePath);

                    await Windows.System.Launcher.LaunchFileAsync(file);
                }
                catch (Exception ex)
                {
                    var msgDialog = new MessageDialog(ex.ToString());
                    await msgDialog.ShowAsync();
                }
            }
        }
Exemplo n.º 12
0
 public void ShrinkImage()
 {
     Image = ImageDrawer.Shrink(Image);
 }
Exemplo n.º 13
0
            internal static Bitmap LineBitmap(string text)
            {
                Bitmap result = null;

                while (text.EndsWith(" ") || text.EndsWith(" "))
                {
                    text = text.Remove(text.Length - 1, 1);
                }
                if (text.EndsWith(":") || text.EndsWith(":"))
                {
                    text = "";
                }
                if (text.Contains("%"))
                {
                    text = text.Split('%')[0];
                }
                else if (text.Contains("%"))
                {
                    text = text.Split('%')[0];
                }
                if (text == "")
                {
                    return(result);
                }
                if (text.Contains(beginTag) && text.Length > text.IndexOf(beginTag) + beginTag.Length && text.Substring(text.IndexOf(beginTag) + beginTag.Length).Contains(endTag))
                {
                    var sections      = new List <Section>();
                    int result_width  = 0;
                    int result_height = ImageDrawer.pictureBox1.Height;
                    while (text.Length != 0)
                    {
                        string section     = "";
                        int    begintagpos = text.IndexOf(beginTag);
                        if (begintagpos > 0)
                        {
                            section = text.Substring(0, begintagpos);
                            text    = text.Substring(begintagpos);
                        }
                        else if (begintagpos == 0 && text.IndexOf(endTag, begintagpos + 1) > begintagpos)
                        {
                            section = text.Substring(0, text.IndexOf(endTag, begintagpos + 1) + endTag.Length);
                            if (text.IndexOf(endTag, begintagpos + 1) + endTag.Length < text.Length)
                            {
                                text = text.Substring(text.IndexOf(endTag, begintagpos + 1) + endTag.Length);
                            }
                            else
                            {
                                text = "";
                            }
                        }
                        else
                        {
                            section = text;
                            text    = "";
                        }
                        if (section == "")
                        {
                            continue;
                        }
                        sections.Add(new Section(section));
                    }
                    sections.RemoveAll(x => x.Image == null || x.Image.Width == 0);
                    foreach (var s in sections)
                    {
                        if (s.Image.Height > result_height && ImageDrawer.AutoShrink)
                        {
                            s.ShrinkImage();
                        }
                        result_width += s.Image.Width;
                    }
                    if (result_width == 0)
                    {
                        return(result);
                    }
                    result = new Bitmap(result_width, result_height);
                    using (Graphics g = Graphics.FromImage(result))
                    {
                        int xpos = 0;
                        foreach (var s in sections)
                        {
                            var ypos = (result.Height - s.Image.Height) / 2;
                            g.DrawImage(s.Image, xpos, ypos);
                            xpos += s.Image.Width;
                        }
                    }
                }
                else
                {
                    result = ImageDrawer.Graphicer(text);
                }
                return(result);
            }
Exemplo n.º 14
0
        private void DrawRasterNew(string file, TileInfo tileInfo)
        {
            if (_needReproject)
            {
                var rl = new RasterLayerClass();
                rl.CreateFromFilePath(file);
                var props = (IRasterProps)rl.Raster;
                props.SpatialReference = _dataSpatialReference;
                var rasterGeometryProc = new RasterGeometryProcClass();
                var missing            = Type.Missing;
                rasterGeometryProc.ProjectFast(_layerSpatialReference, rstResamplingTypes.RSP_NearestNeighbor, ref missing, rl.Raster);

                // fix 9/10/2015: with projected tiles color changes and transparency is ignored.
                var image  = new Bitmap(file, true);
                var format = image.PixelFormat;
                if (format == PixelFormat.Format24bppRgb | format == PixelFormat.Format32bppArgb)
                {
                    var rasterRgbRenderer = new RasterRGBRendererClass();
                    ((IRasterStretch2)rasterRgbRenderer).StretchType = esriRasterStretchTypesEnum.esriRasterStretch_NONE;
                    ((IRasterStretch2)rasterRgbRenderer).Background  = true;
                    rl.Renderer = rasterRgbRenderer;
                }
                // end fix 9/10/2015: with projected tiles color changes and transparency is ignored.

                rl.Draw(esriDrawPhase.esriDPGeography, _display, null);
            }
            else
            {
                using (var fs = new System.IO.FileStream(file, FileMode.Open, FileAccess.Read))
                {
                    if (fs.Length > 100)
                    {
                        var img1 = Image.FromStream(fs, true);
                        {
                            // add check if tile needs to be clipped
                            if (ClipTilesEnvelope != null)
                            {
                                if (tileInfo.Extent.MinX <ClipTilesEnvelope.XMin |
                                                          tileInfo.Extent.MaxX> ClipTilesEnvelope.XMax |
                                    tileInfo.Extent.MinY <ClipTilesEnvelope.YMin |
                                                          tileInfo.Extent.MaxY> ClipTilesEnvelope.YMax)
                                {
                                    img1 = ImageProcessor.CropImage(img1, tileInfo, ClipTilesEnvelope);
                                }
                            }

                            if (img1 != null)
                            {
                                var ms = new MemoryStream();
                                img1.Save(ms, ImageFormat.Png);
                                var bytes1 = ms.ToArray();
                                var ul     = new PointClass()
                                {
                                    X = tileInfo.Extent.MinX, Y = tileInfo.Extent.MaxY
                                };
                                var lr = new PointClass()
                                {
                                    X = tileInfo.Extent.MaxX, Y = tileInfo.Extent.MinY
                                };
                                ImageDrawer.Draw(_display, bytes1, ul, lr);
                                img1.Dispose();
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 15
0
        private TcpMessageHttpResponse PrinterNameImageResponse(string printerName)
        {
            var content = ImageDrawer.DrawImage(printerName);

            return(ImageResponse(content));
        }