public static Brush CreateBaseImageParticle(Color color) { BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.UriSource = new Uri("pack://application:,,,/resources/images/particles/base-particle.png"); bi.EndInit(); ColorReplaceEffect effect = new ColorReplaceEffect(); effect.ColorToOverride = Colors.White; effect.ColorReplace = color; RenderTargetBitmap rtb = PrepareRenderTarget(128); System.Windows.Shapes.Rectangle visual = new System.Windows.Shapes.Rectangle(); visual.Fill = new ImageBrush(bi); visual.Effect = effect; Size sz = new Size(128, 128); visual.Measure(sz); visual.Arrange(new Rect(sz)); rtb.Render(visual); return(new ImageBrush(rtb)); }
public static DrawingGroup CreateBaseImage(Base baze, String url, bool withShader = true) { DrawingGroup g = null; baze.SceneMgr.Invoke(new Action(() => { BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.UriSource = new Uri(url); bi.EndInit(); g = new DrawingGroup(); ImageDrawing img = new ImageDrawing(); img.Rect = new Rect(baze.Size); if (withShader) { ColorReplaceEffect effect = new ColorReplaceEffect(); effect.ColorToOverride = Colors.White; effect.ColorReplace = baze.Owner.GetPlayerColor(); RenderTargetBitmap rtb = new RenderTargetBitmap((int)baze.Size.Width * 2, (int)baze.Size.Height * 2, 96, 96, PixelFormats.Pbgra32); System.Windows.Shapes.Rectangle visual = new System.Windows.Shapes.Rectangle(); visual.Fill = new ImageBrush(bi); visual.Effect = effect; Size sz = new Size(baze.Size.Width * 2, baze.Size.Height * 2); visual.Measure(sz); visual.Arrange(new Rect(sz)); rtb.Render(visual); img.ImageSource = rtb; } else { img.ImageSource = bi; } TransformGroup tg = new TransformGroup(); tg.Children.Add(new TranslateTransform(baze.Position.X, baze.Position.Y)); g.Transform = tg; g.Children.Add(img); })); return(g); }
public static DrawingGroup CreateMineImage(SingularityMine mine) { DrawingGroup g = null; mine.SceneMgr.Invoke(new Action(() => { BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.UriSource = new Uri("pack://application:,,,/resources/images/projectiles/mine.png"); bi.DecodePixelWidth = mine.Radius * 4; bi.EndInit(); g = new DrawingGroup(); ImageDrawing img = new ImageDrawing(); img.Rect = new Rect(new Size(mine.Radius * 2, mine.Radius * 2)); ColorReplaceEffect effect = new ColorReplaceEffect(); effect.ColorToOverride = Colors.White; effect.ColorReplace = mine.Owner.GetPlayerColor(); RenderTargetBitmap rtb = new RenderTargetBitmap((int)mine.Radius * 2, (int)mine.Radius * 2, 96, 96, PixelFormats.Pbgra32); System.Windows.Shapes.Rectangle visual = new System.Windows.Shapes.Rectangle(); visual.Fill = new ImageBrush(bi); visual.Effect = effect; Size sz = new Size(mine.Radius * 2, mine.Radius * 2); visual.Measure(sz); visual.Arrange(new Rect(sz)); rtb.Render(visual); img.ImageSource = rtb; g = new DrawingGroup(); TransformGroup tg = new TransformGroup(); tg.Children.Add(new TranslateTransform(mine.Position.X, mine.Position.Y)); tg.Children.Add(new RotateTransform(mine.Rotation, mine.Radius, mine.Radius)); g.Transform = tg; g.Children.Add(img); })); return(g); }
private void CreateBaseImage(Color c) { BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.UriSource = new Uri("pack://application:,,,/resources/images/base/base_bw_shaded.png"); bi.EndInit(); Image img = new Image(); img.Source = bi; img.Width = 240; img.Height = 60; ColorReplaceEffect effect = new ColorReplaceEffect(); effect.ColorToOverride = Colors.White; effect.ColorReplace = c; img.Effect = effect; baze.Children.Clear(); baze.Children.Add(img); }