Vishcious.ArcGIS.SLContrib.PngEncoder.SetPixelAtRowStart C# (CSharp) Method

SetPixelAtRowStart() public method

public SetPixelAtRowStart ( int col, int rowStart, byte red, byte green, byte blue, byte alpha ) : void
col int
rowStart int
red byte
green byte
blue byte
alpha byte
return void
        public void SetPixelAtRowStart( int col, int rowStart, byte red, byte green, byte blue, byte alpha )
        {
            int start = rowStart + ( col << 2 );

            _buffer[ start ] = red;
            _buffer[ start + 1 ] = green;
            _buffer[ start + 2 ] = blue;
            _buffer[ start + 3 ] = alpha;
        }

Usage Example

        public void Display( PngEncoder surface, Color baseColor )
        {
            for( int y = 1; y < _height - 1; y++ )
            {
                int rowStart = surface.GetRowStart( y );
                for( int x = 1; x < _width - 1; x++ )
                {
                    int xoffset = _buffer1[ x - 1, y ] - _buffer1[ x + 1, y ];
                    int yoffset = _buffer1[ x, y - 1 ] - _buffer1[ x, y + 1 ];
                    int shading = ( xoffset - yoffset ) / 2;

                    xoffset = ( int ) ( xoffset / 35.0 );
                    yoffset = ( int ) ( yoffset / 35.0 );

                    int xnew = x + xoffset;
                    if( xnew < 0 )
                        xnew = 0;
                    if( xnew >= _width )
                        xnew = _width - 1;

                    int ynew = y + yoffset;
                    if( ynew < 0 )
                        ynew = 0;
                    if( ynew >= _height )
                        ynew = _height - 1;

                    byte tred = baseColor.R;
                    byte tgreen = baseColor.G;
                    byte tblue = baseColor.B;

                    if( shading < 0 )
                        shading = 0;
                    if( shading > 255 )
                        shading = 255;

                    tred = Saturate( tred + shading );
                    tgreen = Saturate( tgreen + shading );
                    tblue = Saturate( tblue + shading );

                    surface.SetPixelAtRowStart( x, rowStart, tred, tgreen, tblue, Saturate( shading * 12) );
                }
            }
        }
All Usage Examples Of Vishcious.ArcGIS.SLContrib.PngEncoder::SetPixelAtRowStart