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(); }
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); } }
/* * 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); }
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("印刷完了"); }
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"); }
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; }
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(); } }
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; }
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(); } } }
public void ShrinkImage() { Image = ImageDrawer.Shrink(Image); }
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); }
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(); } } } } } }
private TcpMessageHttpResponse PrinterNameImageResponse(string printerName) { var content = ImageDrawer.DrawImage(printerName); return(ImageResponse(content)); }