Пример #1
0
        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;
                }
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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");
        }
Пример #4
0
        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;
            }
        }