Example #1
0
        public void Copy(ByteImage byteImage)
        {
            byte *  p    = byteImage.Data(0, 0);
            ARGB32 *pOut = data;

            for (int i = 0; i < width * height; i++)
            {
                pOut->A = 255;
                pOut->R = pOut->G = pOut++->B = *p++;
            }
        }
Example #2
0
        public void Copy(ShortImage shortImage)
        {
            ushort *p    = shortImage.Data(0, 0);
            ARGB32 *pOut = data;

            for (int i = 0; i < width * height; i++)
            {
                pOut->A   = 255;
                pOut->R   = (byte)*p;
                pOut->G   = (byte)*p;
                pOut++->B = (byte)*p++;
            }
        }
Example #3
0
        public void InverseRGB()
        {
            ARGB32 *p = data;

            for (int i = 0; i < width * height; i++)
            {
                p->A = p->A;
                p->R = (byte)(255 - p->R);
                p->G = (byte)(255 - p->G);
                p->B = (byte)(255 - p->B);
                p++;
            }
        }
Example #4
0
        public void Copy(RGBImage rgbImage)
        {
            RGB24 * p    = rgbImage.Data(0, 0);
            ARGB32 *pOut = data;

            for (int i = 0; i < width * height; i++)
            {
                pOut->A   = 255;
                pOut->R   = p->R;
                pOut->G   = p->G;
                pOut++->B = p++->B;
            }
        }
Example #5
0
        public void DecimateAndReduce(ARGBImage a, int factor)
        {
            byte *output = data;

            for (int y = 0; y < height; y++)
            {
                ARGB32 *pa = a.Data(0, y * factor);
                for (int x = 0; x < width; x++)
                {
                    *output++ = (*pa).R;
                    pa += factor;
                }
            }
        }
Example #6
0
        public void XMirror(ARGBImage a)
        {
            ARGB32 *pOut = data;
            ARGB32 *pIn  = a.data;

            for (int yy = 0; yy < height; yy++)
            {
                pIn = a.Data(width - 1, yy);
                for (int xx = 0; xx < width; xx++)
                {
                    *pOut++ = *pIn--;
                }
            }
        }
Example #7
0
        public void YMirror(ARGBImage a)
        {
            ARGB32 *pOut = data;
            ARGB32 *pIn  = a.data;

            for (int yy = 0; yy < height; yy++)
            {
                pIn = a.Data(0, height - yy - 1);
                for (int xx = 0; xx < width; xx++)
                {
                    *pOut++ = *pIn++;
                }
            }
        }
Example #8
0
        //Converts a float depth frame into a 32-bit frame
        public void CopyFloatImageForGrayscaleDisplay(FloatImage floatImage, float maxVal)
        {
            float * pIn        = floatImage.Data(0, 0);
            double  multiplier = 255.0 / maxVal;
            ARGB32 *pOut       = data;

            for (int i = 0; i < width * height; i++)
            {
                byte intensity = (byte)(multiplier * *pIn++);//(255 * *pIn++ / maxVal);
                pOut->A   = 255;
                pOut->R   = intensity;
                pOut->G   = intensity;
                pOut++->B = intensity;
            }
        }
Example #9
0
        public void CopyRectangle(ARGBImage argbImage, int startX, int startY, int w, int h)
        {
            ARGB32 *pOrig    = argbImage.Data(0, 0);
            ARGB32 *pOutOrig = data;
            ARGB32 *p;
            ARGB32 *pOut;

            for (int j = startY; j < h; j++)
            {
                for (int i = startX; i < w; i++)
                {
                    p    = pOrig + j * argbImage.Width + i;
                    pOut = pOutOrig + j * width + i;

                    *pOut = *p;
                }
            }
        }
Example #10
0
        public void CopyRectangle(ByteImage byteImage, int startX, int startY, int w, int h)
        {
            byte *  pOrig    = byteImage.Data(0, 0);
            ARGB32 *pOutOrig = data;
            byte *  p;
            ARGB32 *pOut;

            for (int j = startY; j < h; j++)
            {
                for (int i = startX; i < w; i++)
                {
                    p    = pOrig + j * byteImage.Width + i;
                    pOut = pOutOrig + j * width + i;

                    pOut->A = 255;
                    pOut->R = pOut->G = pOut->B = *p;
                }
            }
        }
Example #11
0
        public void CopyRectangle(RGBImage rgbImage, int startX, int startY, int w, int h)
        {
            RGB24 * pOrig    = rgbImage.Data(0, 0);
            ARGB32 *pOutOrig = data;
            RGB24 * p;
            ARGB32 *pOut;

            for (int j = startY; j < h; j++)
            {
                for (int i = startX; i < w; i++)
                {
                    p    = pOrig + j * rgbImage.Width + i;
                    pOut = pOutOrig + j * width + i;

                    pOut->A = 255;
                    pOut->R = p->R;
                    pOut->G = p->G;
                    pOut->B = p->B;
                }
            }
        }
Example #12
0
        public unsafe ARGBImage GenerateY(ARGBImage image, int i)
        {
            ARGB32 *p = image.Data(0, 0);

            for (int y = 0; y < height; y++)
            {
                // Gray code changes only one bit from one column/row to the next column/row
                int grayCode = y ^ (y >> 1);
                // pick out the bit for this image
                int bit = (grayCode & (1 << i)) >> i;

                for (int x = 0; x < width; x++)
                {
                    p->R = (byte)(255 * bit);
                    p->G = (byte)(255 * bit);
                    p->B = (byte)(255 * bit);
                    p->A = (byte)(255);
                    p++;
                }
            }
            return(image);
        }
Example #13
0
 public ARGBImage(int width, int height, IntPtr dataIntPtr)
     : base(width, height, dataIntPtr, sizeof(ARGB32))
 {
     data = (ARGB32 *)dataIntPtr.ToPointer();
 }
Example #14
0
 public ARGBImage(int width, int height, IntPtr dataIntPtr)
     : base(width, height, dataIntPtr, sizeof(ARGB32))
 {
     data = (ARGB32*)dataIntPtr.ToPointer();
 }