CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 3 of 3

Threaded View

  1. #1
    Join Date
    Jun 2008
    Posts
    2,477

    Why do my images seem to be in the format of Bgra instead of Argb?

    `

    EDIT:OK, 0 /2 tonight. Darn those little endians...



    So, I am very confused over a quick test that I just ran. I am doing some image processing in C#. Get/SetPixel() have proven to be too slow, so I am using LockBits to get at the raw data.

    However, I seem to have hit a situation which I can't figure out. While scanning the image, it
    seems that each pixel is laid out as Bgra, that is, blue byte, green byte, red byte, and alpha, in that order. I was under the impression that they would be laid out in Argb order. here is a sample of the code that I am using.

    Code:
    BitmapData baseData =
        m_baseImage.LockBits(new Rectangle(new Point(0, 0), m_baseImage.Size), 
            ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
    Bitmap test = new Bitmap(m_baseImage.Width, m_baseImage.Height);           
    
    byte* ptr = (byte*)baseData.Scan0;
    for (int y = 0; y < m_baseImage.Height; ++y)
    {                              
        for (int x = 0; x < m_baseImage.Width; ++x)
        {
            // this works, image is copied correctly
            Color c1 = Color.FromArgb(*(ptr + 3), *(ptr + 2), *(ptr + 1), *ptr);
            // below does not work!  Bytes are reversed.
            //Color c1 = Color.FromArgb(*ptr, *(ptr + 1), *(ptr + 2), *(ptr + 3));
    
            test.SetPixel(x, y, c1);
            ptr += 4;
        }             
    }
    
    m_baseImage.UnlockBits(baseData);
    pictureBox1.Image = m_baseImage;
    pictureBox2.Image = test;
    The first line which grabs the color of the base image works, the second does not. I am pretty sure that I am missing something here.
    Last edited by BigEd781; February 24th, 2009 at 01:45 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured