Ejemplo n.º 1
0
        public void PaintPixel(int x, int y)
        {
            int pt            = _simplePaintViewModel.Getptr();
            int bytesPerPixel = _simplePaintViewModel.GetBytesPerPixel();
            int j             = 0;
            int xPixelWidth   = bytesPerPixel * pt;
            int stride        = _simplePaintViewModel.GetStride();

            y = y + 1;
            int xArrayPosition = x * bytesPerPixel;
            int actualPosition;
            int yArrayPosition;

            byte[] pixelData = _simplePaintViewModel.GetImageData();
            for (int pixelOverY = pt; pixelOverY > 0; pixelOverY--)
            {
                yArrayPosition = (y - pixelOverY) * stride;
                actualPosition = yArrayPosition + xArrayPosition;
                for (int i = actualPosition; i < actualPosition + xPixelWidth && i < yArrayPosition + stride; i++)
                {
                    if (i < 0 || i > pixelData.Length - 1)
                    {
                        continue;
                    }
                    pixelData[i] = _simplePaintViewModel.CurrentColour[j];
                    j++;
                    if (j == bytesPerPixel)
                    {
                        j = 0;
                    }
                }
            }
            _simplePaintViewModel.SetImageData(pixelData);
            _simplePaintViewModel.Imagesource = BitmapSource.Create(_simplePaintViewModel.Imagesource.PixelWidth,
                                                                    _simplePaintViewModel.Imagesource.PixelHeight, _simplePaintViewModel.Imagesource.DpiX,
                                                                    _simplePaintViewModel.Imagesource.DpiY, _simplePaintViewModel.Imagesource.Format,
                                                                    _simplePaintViewModel.Imagesource.Palette, pixelData,
                                                                    stride);
        }
Ejemplo n.º 2
0
 private void OpenImage(BitmapSource b)
 {
     _simplePaintViewModel.SetImageData(new byte[b.PixelHeight * b.PixelWidth * (b.Format.BitsPerPixel / 8)]);
     b.CopyPixels(_simplePaintViewModel.GetImageData(), b.PixelWidth * (b.Format.BitsPerPixel / 8), 0);
     _simplePaintViewModel.SetWidth(b.PixelWidth);
     _simplePaintViewModel.SetHeight(b.PixelHeight);
     _simplePaintViewModel.SetBytesPerPixel(b.Format.BitsPerPixel / 8);
     _simplePaintViewModel.SetStride(_simplePaintViewModel.GetBytesPerPixel() * b.PixelWidth);
     _simplePaintViewModel.ImageSave.Clear();
     _simplePaintViewModel.Imagesource = BitmapSource.Create(b.PixelWidth, b.PixelHeight, b.DpiX, b.DpiY, b.Format, b.Palette, _simplePaintViewModel.GetImageData(), _simplePaintViewModel.GetStride());
     _simplePaintViewModel.SetFirstImage(_simplePaintViewModel.Imagesource);
     _simplePaintViewModel.ImageSave.Push((new TempImage(_simplePaintViewModel.Imagesource, _simplePaintViewModel.Imagesource.PixelWidth * _simplePaintViewModel.Imagesource.Format.BitsPerPixel / 8)));
 }
Ejemplo n.º 3
0
 public void Execute(object parameter)
 {
     if (_simplePaintViewModel.ImageSave.Count - 1 >= 0)
     {
         if (_simplePaintViewModel.ImageSave.Count - 1 == 0)
         {
             _simplePaintViewModel.ImageSave.Clear();
             _simplePaintViewModel.GetFirstImage().CopyPixels(_simplePaintViewModel.GetImageData(), _simplePaintViewModel.GetStride(), 0);
             _simplePaintViewModel.Imagesource = _simplePaintViewModel.GetFirstImage();
             _simplePaintViewModel.ImageSave.Push(new TempImage(_simplePaintViewModel.Imagesource, _simplePaintViewModel.GetStride()));
             return;
         }
         _simplePaintViewModel.ImageSave.Pop();
         var tempImage = _simplePaintViewModel.ImageSave.Peek();
         _simplePaintViewModel.SetImageData(tempImage.TempPixelData);
         _simplePaintViewModel.Imagesource = BitmapSource.Create(tempImage.Tempbmp.PixelWidth, tempImage.Tempbmp.PixelHeight, tempImage.Tempbmp.DpiX, tempImage.Tempbmp.DpiY, tempImage.Tempbmp.Format, tempImage.Tempbmp.Palette, _simplePaintViewModel.GetImageData(), _simplePaintViewModel.GetStride());
     }
 }
Ejemplo n.º 4
0
 public void Execute(object parameter)
 {
     _simplePaintViewModel.ImageSave.Clear();
     _simplePaintViewModel.GetFirstImage().CopyPixels(_simplePaintViewModel.GetImageData(), _simplePaintViewModel.GetStride(), 0);
     _simplePaintViewModel.Imagesource = _simplePaintViewModel.GetFirstImage();
     _simplePaintViewModel.ImageSave.Push(new TempImage(_simplePaintViewModel.Imagesource, _simplePaintViewModel.GetStride()));
     _simplePaintViewModel.Imagesource = BitmapSource.Create(_simplePaintViewModel.Imagesource.PixelWidth, _simplePaintViewModel.Imagesource.PixelHeight, _simplePaintViewModel.Imagesource.DpiX,
                                                             _simplePaintViewModel.Imagesource.DpiY, _simplePaintViewModel.Imagesource.Format, _simplePaintViewModel.Imagesource.Palette, _simplePaintViewModel.GetImageData(), _simplePaintViewModel.Imagesource.PixelWidth * (_simplePaintViewModel.Imagesource.Format.BitsPerPixel / 8));
 }
Ejemplo n.º 5
0
 public void Execute(object parameter)
 {
     _simplePaintViewModel.ImageSave.Push(new TempImage(_simplePaintViewModel.Imagesource, _simplePaintViewModel.GetStride()));
 }
Ejemplo n.º 6
0
 public void CreateNewImage(int width, int height)
 {
     _simplePaintViewModel.SetStride(width * _simplePaintViewModel.GetBytesPerPixel());
     _simplePaintViewModel.SetWidth(width);
     _simplePaintViewModel.SetHeight(height);
     _simplePaintViewModel.ImageSave.Clear();
     _simplePaintViewModel.Imagesource = BitmapSource.Create(_simplePaintViewModel.GetWidth(), _simplePaintViewModel.GetHeight(), 400, 400, PixelFormats.Bgr24, null, _simplePaintViewModel.GetImageData(), _simplePaintViewModel.GetStride());
     _simplePaintViewModel.ImageSave.Push(new TempImage(_simplePaintViewModel.Imagesource, _simplePaintViewModel.GetStride()));
     _simplePaintViewModel.SetFirstImage(_simplePaintViewModel.Imagesource);
 }