Animatroller.Framework.LogicalDevice.VirtualPixel1D3.PixelDevice.DrawImage C# (CSharp) Method

DrawImage() public method

public DrawImage ( Bitmap bitmap ) : void
bitmap System.Drawing.Bitmap
return void
            public void DrawImage(Bitmap bitmap)
            {
                if (this.pixelsChangedAction != null)
                {
                    int stride;
                    lock (this)
                    {
                        this.outputGraphics.DrawImageUnscaled(bitmap, -StartPosition, 0);
                        if (this.reverse)
                            this.outputBitmap.RotateFlip(RotateFlipType.RotateNoneFlipX);

                        BitmapData bitmapData = this.outputBitmap.LockBits(this.outputRectangle, ImageLockMode.ReadOnly, this.outputBitmap.PixelFormat);
                        stride = bitmapData.Stride;
                        System.Runtime.InteropServices.Marshal.Copy(bitmapData.Scan0, pixels, 0, pixels.Length);
                        this.outputBitmap.UnlockBits(bitmapData);
                    }

                    // Shift little/big-endian
                    if (BitConverter.IsLittleEndian)
                    {
                        for (int y = 0; y < this.outputRectangle.Height; y++)
                        {
                            for (int x = 0; x < this.outputRectangle.Width; x++)
                            {
                                int bytePos = y * stride + x * 3;
                                byte b1 = this.pixels[bytePos + 2];
                                this.pixels[bytePos + 2] = this.pixels[bytePos];
                                this.pixels[bytePos] = b1;
                            }
                        }
                    }

                    this.pixelsChangedAction(this.pixels);
                }
            }
VirtualPixel1D3.PixelDevice