private void RedrawAllShapes() { lock (bitmapArrayLock) { bitmapArray.Fill(backgroundcolor); bitmapArray.FillPolygon(sun, suncolor); bitmapArray.FillPolygon(waves1, waves1color); bitmapArray.FillPolygon(dolphin, dolphincolor); bitmapArray.FillPolygon(waves2, waves2color); foreach (var dolphinotherfragment in dolphinother) { if (dolphinotherfragment.PointsCount == 3) { bitmapArray.FillPolygon(dolphinotherfragment, dolphincolorother1); } else if (dolphinotherfragment.PointsCount == 4) { bitmapArray.FillPolygon(dolphinotherfragment, dolphincolorother2); } else if (dolphinotherfragment.PointsCount == 5) { bitmapArray.FillPolygon(dolphinotherfragment, dolphincolorother3); } else { bitmapArray.FillPolygon(dolphinotherfragment, dolphinpatternother); } } bitmapArray.FillPolygon(rect1, Colors4Ch.Red); bitmapArray.FillPolygon(rect2, Colors4Ch.Blue); foreach (var rect in rect3) { bitmapArray.FillPolygon(rect, Colors4Ch.White); } bitmapArray.FillPolygon(trig1, Colors4Ch.Red); bitmapArray.FillPolygon(trig2, Colors4Ch.Blue); foreach (var trig in trig3) { bitmapArray.FillPolygon(trig, Colors4Ch.White); } bitmapArray.RefreshBitmap(Mask.Disabled); if (reinitializeDisplayedBitmap) { PlayerImage.Source = bitmapArray.GetBitmap(Mask.Disabled); PlayerImage.Width = bitmapArray.Width; PlayerImage.Height = bitmapArray.Height; reinitializeDisplayedBitmap = false; } } }
private void SaveToDisk(string fileName) { FileStream stream = new FileStream(fileName, FileMode.Create); BmpBitmapEncoder encoder = new BmpBitmapEncoder(); TextBlock myTextBlock = new TextBlock(); myTextBlock.Text = "Codec Author is: " + encoder.CodecInfo.Author.ToString(); //encoder.Frames.Add(BitmapFrame.Create((BitmapSource)this.DrawingImage.Source)); encoder.Frames.Add(BitmapFrame.Create(bitmapArray.GetBitmap(Mask.Disabled))); encoder.Save(stream); }
public void SetBitmapArray(FastBitmapArray array) { bitmapArray = array; DrawingImage.Source = bitmapArray.GetBitmap(Mask.Disabled); DrawingImage.Width = bitmapArray.Width; DrawingImage.Height = bitmapArray.Height; ReinitializeMask(); SendPropertyChanged("MaxPointX"); SendPropertyChanged("MaxPointY"); }
private void OptionGeneratePalette_Click(object sender, RoutedEventArgs e) { bitmapArray = new FastBitmapArray((int)DrawingScrollView.ViewportWidth, (int)DrawingScrollView.ViewportHeight); bitmapArrayWithoutLines = null; bitmapArray.SetBatchArea(0, 0, bitmapArray.Width - 1, bitmapArray.Height - 1); double xJump = 1.0 / bitmapArray.Width; int ySegment = bitmapArray.Height / (1 + 3 + 3 + 3 + 3); //double xJump = 1.0 / bitmapArray.Width; for (int x = 0; x < bitmapArray.Width; ++x) { int y = 0; int yMax = ySegment; for (; y < yMax; ++y) { bitmapArray.SetRedBatch(x, y, x * xJump); bitmapArray.SetGreenBatch(x, y, x * xJump); bitmapArray.SetBlueBatch(x, y, x * xJump); } yMax += ySegment; for (; y < yMax; ++y) { bitmapArray.SetRedBatch(x, y, x * xJump); } yMax += ySegment; for (; y < yMax; ++y) { bitmapArray.SetGreenBatch(x, y, x * xJump); } yMax += ySegment; for (; y < yMax; ++y) { bitmapArray.SetBlueBatch(x, y, x * xJump); } yMax += ySegment; for (; y < yMax; ++y) { bitmapArray.SetRedBatch(x, y, x * xJump); bitmapArray.SetGreenBatch(x, y, x * xJump); //bitmapArray.SetBlueBatch(x, y, x * xJump); } yMax += ySegment; for (; y < yMax; ++y) { //bitmapArray.SetRedBatch(x, y, x * xJump); bitmapArray.SetGreenBatch(x, y, x * xJump); bitmapArray.SetBlueBatch(x, y, x * xJump); } yMax += ySegment; for (; y < yMax; ++y) { bitmapArray.SetRedBatch(x, y, x * xJump); //bitmapArray.SetGreenBatch(x, y, x * xJump); bitmapArray.SetBlueBatch(x, y, x * xJump); } yMax += ySegment; for (; y < yMax; ++y) { bitmapArray.SetRedBatch(x, y, x * xJump); bitmapArray.SetGreenBatch(x, y, 1); bitmapArray.SetBlueBatch(x, y, 1); } yMax += ySegment; for (; y < yMax; ++y) { bitmapArray.SetRedBatch(x, y, 1); bitmapArray.SetGreenBatch(x, y, x * xJump); bitmapArray.SetBlueBatch(x, y, 1); } yMax += ySegment; for (; y < yMax; ++y) { bitmapArray.SetRedBatch(x, y, 1); bitmapArray.SetGreenBatch(x, y, 1); bitmapArray.SetBlueBatch(x, y, x * xJump); } yMax += ySegment; for (; y < yMax; ++y) { bitmapArray.SetRedBatch(x, y, x * xJump); bitmapArray.SetGreenBatch(x, y, x * xJump); bitmapArray.SetBlueBatch(x, y, 1); } yMax += ySegment; for (; y < yMax; ++y) { bitmapArray.SetRedBatch(x, y, 1); bitmapArray.SetGreenBatch(x, y, x * xJump); bitmapArray.SetBlueBatch(x, y, x * xJump); } yMax += ySegment; for (; y < yMax; ++y) { bitmapArray.SetRedBatch(x, y, x * xJump); bitmapArray.SetGreenBatch(x, y, 1); bitmapArray.SetBlueBatch(x, y, x * xJump); } } DrawingImage.Source = bitmapArray.GetBitmap(Mask.Disabled); DrawingImage.Width = bitmapArray.Width; DrawingImage.Height = bitmapArray.Height; ReinitializeMask(); if (latestFileName != null) { latestFileName = null; OptionReload.IsEnabled = false; } }