示例#1
0
        public int NextPixel(ref JBIG2BitmapPtr ptr)
        {
            int pix;

            if (ptr.p == null)
            {
                pix = 0;
            }
            else if (ptr.x < 0)
            {
                ++ptr.x;
                pix = 0;
            }
            else
            {
                pix = (ptr.p[ptr.index] >> ptr.shift) & 1;
                if (++ptr.x == m_w)
                {
                    ptr.p = null;
                }
                else if (ptr.shift == 0)
                {
                    ++ptr.index;
                    ptr.shift = 7;
                }
                else
                {
                    --ptr.shift;
                }
            }
            return(pix);
        }
示例#2
0
 public void GetPixelPtr(int x, int y, ref JBIG2BitmapPtr ptr)
 {
     if (y < 0 || y >= m_h || x >= m_w)
     {
         ptr.p = null;
     }
     else if (x < 0)
     {
         ptr.p     = m_data;
         ptr.index = y * m_line;
         ptr.shift = 7;
         ptr.x     = x;
     }
     else
     {
         ptr.p     = m_data;
         ptr.index = y * m_line + (x >> 3);
         ptr.shift = 7 - (x & 7);
         ptr.x     = x;
     }
 }