private void UpdateStencil() { try { editorImage.Image = GenerateEditorImage(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } InkedPattern.PurgeCache(); var pattern = new InkedPattern() { PatternMatrix = Stencil }; texturePreview.BackgroundImage = new Bitmap(texturePreview.Width, texturePreview.Height); using (var g = Graphics.FromImage(texturePreview.BackgroundImage)) g.FillRectangle(pattern.AsBrush(), 0, 0, texturePreview.Width, texturePreview.Height); textPreview.BackgroundImage = new Bitmap(textPreview.Width, textPreview.Height); using (var g = Graphics.FromImage(textPreview.BackgroundImage)) { g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit; g.DrawString("Hello, World!", DefaultFont, pattern.AsBrush(), new Point(10, 10)); } }
public override object ProvideValue(IServiceProvider serviceProvider) { switch (PatternType) { case PatternTypes.DiagonalHatched: return(InkedPattern.CreateDiagonalHatchedPattern( Foreground.ToDrawingColor(), Background.ToDrawingColor()).AsMediaBrushTiled()); case PatternTypes.DiagonalFatStripes: return(InkedPattern.CreateFatStripedPattern( Foreground.ToDrawingColor(), Background.ToDrawingColor()).AsMediaBrushTiled()); case PatternTypes.DiagonalStripes: return(InkedPattern.CreateStripedPattern( Foreground.ToDrawingColor(), Background.ToDrawingColor()).AsMediaBrushTiled()); case PatternTypes.Dithered: return(InkedPattern.CreateDitheredPattern( Foreground.ToDrawingColor(), Background.ToDrawingColor()).AsMediaBrushTiled()); case PatternTypes.Solid: return(InkedPattern.CreateSolidPattern(Foreground.ToDrawingColor()).AsMediaBrushTiled()); } return(null); }
public static Brush AsMediaBrushTiled(this InkedPattern pattern) => new ImageBrush(pattern.AsBitmapSource()) { TileMode = TileMode.Tile, Stretch = Stretch.None, AlignmentX = AlignmentX.Left, AlignmentY = AlignmentY.Top, ViewportUnits = BrushMappingMode.Absolute, Viewport = new Rect(0, 0, pattern.Width, pattern.Height) };
private void btnImport_Click(object sender, EventArgs e) { try { var newPattern = InkedPattern.CreateFromFingerprint(fingerprintCode.Text); Pattern = newPattern; this.Close(); } catch (ArithmeticException ex) { MessageBox.Show(ex.Message); } catch (Exception ex) { MessageBox.Show("Invalid fingerprint."); } }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { var stencil = value as InkedPattern; var svc = provider.GetService(typeof(IWindowsFormsEditorService)) as IWindowsFormsEditorService; if (svc != null) { using (var form = new StencilEditor()) { form.Stencil = stencil.PatternMatrix; if (svc.ShowDialog(form) == DialogResult.OK) { stencil = new InkedPattern() { PatternMatrix = form.Stencil } } ; } } return(stencil); } }
public static Brush AsMediaBrush(this InkedPattern pattern) => new ImageBrush(pattern.AsBitmapSource());
public static BitmapSource AsBitmapSource(this InkedPattern pattern) => Imaging.CreateBitmapSourceFromHBitmap( pattern.AsBitmap().GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());