public static void SortCpuWaves(WaterWave[] windWaves, bool mostlySorted) { if (!mostlySorted) { Array.Sort <WaterWave>(windWaves, delegate(WaterWave a, WaterWave b) { if (a._CPUPriority > b._CPUPriority) { return(-1); } return((a._CPUPriority != b._CPUPriority) ? 1 : 0); }); } else { int num = windWaves.Length; int num2 = 0; for (int i = 1; i < num; i++) { if (windWaves[num2]._CPUPriority < windWaves[i]._CPUPriority) { WaterWave waterWave = windWaves[num2]; windWaves[num2] = windWaves[i]; windWaves[i] = waterWave; if (i != 1) { i -= 2; } } num2 = i; } } }
public Bitmap ToWaterWave(Bitmap Im) { AForge.Imaging.Filters.WaterWave Img = new WaterWave(); Bitmap bmImage = AForge.Imaging.Image.Clone(new Bitmap(Im), PixelFormat.Format24bppRgb); return(Img.Apply(bmImage)); }
public Bitmap WaterWaveFilter(Bitmap img) { WaterWave filter = new WaterWave(); filter.HorizontalWavesCount = 10; filter.HorizontalWavesAmplitude = 5; filter.VerticalWavesCount = 3; filter.VerticalWavesAmplitude = 15; return(filter.Apply(img)); }
private void applyfilter(int a, int b, int c, int d) { imgcopy = imgcopy1; WaterWave filter = new WaterWave(); filter.HorizontalWavesCount = a; filter.HorizontalWavesAmplitude = b; filter.VerticalWavesCount = c; filter.VerticalWavesAmplitude = d; imgcopy = filter.Apply(imgcopy); MainForm.getMainForm.pictureBox1ImagePreview.Image = imgcopy; }
//apply 1-3 waves private static Bitmap Wave(Bitmap image) { var h = (int)(r.NextDouble() * 3); var v = (int)(r.NextDouble() * 3); WaterWave filter = new WaterWave(); filter.HorizontalWavesCount = h; filter.HorizontalWavesAmplitude = 1; filter.VerticalWavesCount = v; filter.VerticalWavesAmplitude = 1; // apply the filter return(filter.Apply(image)); }
public mEffectRipple(int horizontalAmplitude, int verticalAmplitude, int horizontalCount, int verticalCount) { BitmapType = mFilter.BitmapTypes.None; HorizontalCount = horizontalCount; VerticalCount = verticalCount; HorizontalAmplitude = horizontalAmplitude; VerticalAmplitude = verticalAmplitude; Effect = new WaterWave(); Effect.HorizontalWavesAmplitude = HorizontalAmplitude; Effect.HorizontalWavesCount = HorizontalCount; Effect.VerticalWavesAmplitude = VerticalAmplitude; Effect.VerticalWavesCount = VerticalCount; filter = Effect; }
private void FrmMusic_Load(object sender, EventArgs e) { jPictureBox1.MouseMove += (s, err) => { if (ww != null) { ww.DropStone(err.Location); } }; ww = new WaterWave(new Bitmap(Jade.Test.Properties.Resources._7610ad096b63f6245eb47a088144ebf81b4ca3db), jPictureBox1.Size); var tri = new Timer { Interval = 15 }; tri.Tick += (s, err) => { jPictureBox1.Image = ww.GetFrame(); }; tri.Start(); }
public static byte[] ApplyFilter(byte[] imageBytes, ImageProcessingFilters filter, ImageFormat format = null) { IFilter baseFilter = null; switch (filter) { case ImageProcessingFilters.Default: return(imageBytes); case ImageProcessingFilters.GrayscaleBT709: baseFilter = new GrayscaleBT709(); break; case ImageProcessingFilters.GrayscaleRMY: baseFilter = new GrayscaleRMY(); break; case ImageProcessingFilters.GrayscaleY: baseFilter = new GrayscaleY(); break; case ImageProcessingFilters.BayerFilter: baseFilter = new FiltersSequence(); ((FiltersSequence)baseFilter).Add(new ExtractChannel(RGB.B)); ((FiltersSequence)baseFilter).Add(new BayerFilter()); break; /* * case ImageProcessingFilters.ImageWarp: * baseFilter = new ImageWarp( * break; * */ case ImageProcessingFilters.Channel_Red: baseFilter = new ExtractChannel(RGB.R); break; case ImageProcessingFilters.Channel_Green: baseFilter = new ExtractChannel(RGB.G); break; case ImageProcessingFilters.Channel_Blue: baseFilter = new ExtractChannel(RGB.B); break; case ImageProcessingFilters.WaterWave: baseFilter = new WaterWave(); ((WaterWave)baseFilter).HorizontalWavesCount = 10; ((WaterWave)baseFilter).HorizontalWavesAmplitude = 5; ((WaterWave)baseFilter).VerticalWavesCount = 3; ((WaterWave)baseFilter).VerticalWavesAmplitude = 15; break; case ImageProcessingFilters.Sepia: baseFilter = new Sepia(); break; case ImageProcessingFilters.BrightnessCorrection: baseFilter = new BrightnessCorrection(-50); break; case ImageProcessingFilters.ContrastCorrection: baseFilter = new ContrastCorrection(15); break; case ImageProcessingFilters.SaturationCorrection1: baseFilter = new SaturationCorrection(-0.5f); break; case ImageProcessingFilters.SaturationCorrection2: baseFilter = new SaturationCorrection(-.25f); break; case ImageProcessingFilters.SaturationCorrection3: baseFilter = new SaturationCorrection(+0.5f); break; case ImageProcessingFilters.Invert: baseFilter = new Invert(); break; case ImageProcessingFilters.Blur: baseFilter = new Blur(); break; case ImageProcessingFilters.RotateChannels: baseFilter = new RotateChannels(); break; case ImageProcessingFilters.RotateChannels2: baseFilter = new FiltersSequence(); ((FiltersSequence)baseFilter).Add(new RotateChannels()); ((FiltersSequence)baseFilter).Add(new RotateChannels()); break; case ImageProcessingFilters.AdditiveNoise: IRandomNumberGenerator generator = new UniformGenerator(new Range(-50, 50)); baseFilter = new AdditiveNoise(generator); break; case ImageProcessingFilters.GammaCorrection: baseFilter = new GammaCorrection(0.5); break; case ImageProcessingFilters.HistogramEqualization: baseFilter = new HistogramEqualization(); break; case ImageProcessingFilters.OrderedDithering: byte[,] matrix = new byte[4, 4] { { 95, 233, 127, 255 }, { 159, 31, 191, 63 }, { 111, 239, 79, 207 }, { 175, 47, 143, 15 } }; baseFilter = new FiltersSequence(); ((FiltersSequence)baseFilter).Add(new GrayscaleBT709()); ((FiltersSequence)baseFilter).Add(new OrderedDithering(matrix)); break; case ImageProcessingFilters.Pixallete: baseFilter = new Pixellate(); break; case ImageProcessingFilters.SimplePosterization: baseFilter = new SimplePosterization(); break; case ImageProcessingFilters.Texturer_Textile: baseFilter = new Texturer(new AForge.Imaging.Textures.TextileTexture(), 0.3, 0.7); break; case ImageProcessingFilters.Texturer_Cloud: baseFilter = new Texturer(new AForge.Imaging.Textures.CloudsTexture(), 0.3, 0.7); break; case ImageProcessingFilters.Texturer_Marble: baseFilter = new Texturer(new AForge.Imaging.Textures.MarbleTexture(), 0.3, 0.7); break; case ImageProcessingFilters.Texturer_Wood: baseFilter = new Texturer(new AForge.Imaging.Textures.WoodTexture(), 0.3, 0.7); break; case ImageProcessingFilters.Texturer_Labyrinth: baseFilter = new Texturer(new AForge.Imaging.Textures.LabyrinthTexture(), 0.3, 0.7); break; case ImageProcessingFilters.SobelEdgeDetector: baseFilter = new FiltersSequence(); ((FiltersSequence)baseFilter).Add(new ExtractChannel(RGB.R)); ((FiltersSequence)baseFilter).Add(new SobelEdgeDetector()); break; case ImageProcessingFilters.SobelEdgeDetectorInvert: baseFilter = new FiltersSequence(); ((FiltersSequence)baseFilter).Add(new ExtractChannel(RGB.R)); ((FiltersSequence)baseFilter).Add(new SobelEdgeDetector()); ((FiltersSequence)baseFilter).Add(new Invert()); break; case ImageProcessingFilters.SobelEdgeDetectorSepia: baseFilter = new FiltersSequence(); ((FiltersSequence)baseFilter).Add(new ExtractChannel(RGB.R)); ((FiltersSequence)baseFilter).Add(new SobelEdgeDetector()); ((FiltersSequence)baseFilter).Add(new GrayscaleToRGB()); ((FiltersSequence)baseFilter).Add(new Sepia()); break; case ImageProcessingFilters.SobelEdgeDetectorSepiaCanvas: baseFilter = new FiltersSequence(); ((FiltersSequence)baseFilter).Add(new ExtractChannel(RGB.R)); ((FiltersSequence)baseFilter).Add(new SobelEdgeDetector()); ((FiltersSequence)baseFilter).Add(new GrayscaleToRGB()); ((FiltersSequence)baseFilter).Add(new Sepia()); ((FiltersSequence)baseFilter).Add(new SimplePosterization()); ((FiltersSequence)baseFilter).Add(new Texturer(new AForge.Imaging.Textures.TextileTexture(), 0.3, 0.7)); break; case ImageProcessingFilters.Drawing: baseFilter = new FiltersSequence(); ((FiltersSequence)baseFilter).Add(new GrayscaleBT709()); ((FiltersSequence)baseFilter).Add(new SobelEdgeDetector()); ((FiltersSequence)baseFilter).Add(new Invert()); ((FiltersSequence)baseFilter).Add(new SimplePosterization()); break; case ImageProcessingFilters.DrawingSepia: baseFilter = new FiltersSequence(); ((FiltersSequence)baseFilter).Add(new GrayscaleBT709()); ((FiltersSequence)baseFilter).Add(new SobelEdgeDetector()); ((FiltersSequence)baseFilter).Add(new Invert()); ((FiltersSequence)baseFilter).Add(new SimplePosterization()); ((FiltersSequence)baseFilter).Add(new GrayscaleToRGB()); ((FiltersSequence)baseFilter).Add(new Sepia()); break; case ImageProcessingFilters.OilCanvas: baseFilter = new FiltersSequence(); ((FiltersSequence)baseFilter).Add(new SimplePosterization()); ((FiltersSequence)baseFilter).Add(new Texturer(new AForge.Imaging.Textures.TextileTexture(), 0.3, 0.7)); break; case ImageProcessingFilters.OilCanvasGray: baseFilter = new FiltersSequence(); ((FiltersSequence)baseFilter).Add(new SimplePosterization()); ((FiltersSequence)baseFilter).Add(new Texturer(new AForge.Imaging.Textures.TextileTexture(), 0.3, 0.7)); ((FiltersSequence)baseFilter).Add(new GrayscaleBT709()); break; case ImageProcessingFilters.OilCanvasSepia: baseFilter = new FiltersSequence(); ((FiltersSequence)baseFilter).Add(new SimplePosterization()); ((FiltersSequence)baseFilter).Add(new Texturer(new AForge.Imaging.Textures.TextileTexture(), 0.3, 0.7)); ((FiltersSequence)baseFilter).Add(new Sepia()); break; } if (baseFilter == null) { return(null); } return(ApplyFilter(imageBytes, baseFilter, format)); }
private void btn_filter3_Click(object sender, EventArgs e) { AForge.Imaging.Filters.WaterWave filter = new WaterWave(); pictureBox1.Image = filter.Apply((Bitmap)pictureBox1.Image); }
public World(int InitFactionNumber, Game game, bool ambientOn, string mapName) { this.game = game; commonCamera = new Camera(Vector2.Zero, 1.5f); player1Camera = new Camera(Vector2.Zero, 1.5f); player2Camera = new Camera(Vector2.Zero, 1.5f); cameras.Add(commonCamera); cameras.Add(player1Camera); cameras.Add(player2Camera); currentCamera = commonCamera; //by 刘欣 李翔 collector = new InfoCollector(ships, resources); if (InitFactionNumber == 1) { InitShip(2, Color.Blue, "Player", FactionControllerType.Player); } if (mapName == null) { mapName = GameOperators.Random.Next(1, 7).ToString(); } currentMap = mapName; LoadMap(currentMap); //添加资源点 //resources.Add(new ResourceArea(1, 196, new Vector2(-384, -384), null, this)); //islands.Add(new Island(this, "island1", 0.3f, new Vector2(-384, -384), 32f)); //resources.Add(new ResourceArea(2, 196, new Vector2(-384, 384), null, this)); //islands.Add(new Island(this, "island2", 0.3f, new Vector2(-384, 384), 32f)); //resources.Add(new ResourceArea(3, 196, new Vector2(0, 0), null, this)); //islands.Add(new Island(this, "island0", 0.3f, new Vector2(0, 0), 32f)); //resources.Add(new ResourceArea(4, 196, new Vector2(384, -384), null, this)); //islands.Add(new Island(this, "island3", 0.3f, new Vector2(384, -384), 32f)); //resources.Add(new ResourceArea(5, 196, new Vector2(384, 384), null, this)); //islands.Add(new Island(this, "island4", 0.3f, new Vector2(384, 384), 32f)); sea = new Sea(); waterWave = new WaterWave(); for (int i = 0; i < 20; i++)//添加云 { // upperAmbients.Add(AmbientObject.CreateCloud(this,new Vector2(GameOperators.Random.Next(-768,768),GameOperators.Random.Next(-1024,1024)),new Vector2 (10f,2f))); upperAmbients.Add(AmbientObject.CreateCloud(this, new Vector2(GameOperators.Random.Next((int)(-MapSize.X / 2 * 1.4f), (int)(MapSize.X / 2 * 1.4f)), GameOperators.Random.Next((int)(-MapSize.Y / 2 * 1.4f), (int)(MapSize.Y / 2 * 1.4f))), new Vector2(10f, 2f))); } lowerAmbients.Add(new AmbientObject(this, new Vector2(0, 0), "OceanBackground", 2, Color.White, 0)); lowerAmbients.Add(new AmbientObject(this, new Vector2(0, 0), "OceanBackgroundWord", 0.75f, Color.White, 0)); for (int i = 0; i < 20; i++)//添加鱼 { // upperAmbients.Add(AmbientObject.CreateCloud(this,new Vector2(GameOperators.Random.Next(-768,768),GameOperators.Random.Next(-1024,1024)),new Vector2 (10f,2f))); lowerAmbients.Add(new Fish(this)); } map = new SmallMap(ships, resources, currentCamera); corners[0] = new Vector2(-mapSize.X / 2, -mapSize.Y / 2); corners[1] = new Vector2(mapSize.X / 2, -mapSize.Y / 2); corners[2] = new Vector2(mapSize.X / 2, mapSize.Y / 2); corners[3] = new Vector2(-mapSize.X / 2, mapSize.Y / 2); this.ambientOn = ambientOn; }