Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 3 of 3

Thread: convert index of raw image data to RGB

  1. #1

    convert index of raw image data to RGB

    I want to get RGB values from a 24 bit BGR data. This data is from a raw image without a header.
    I don't know how to convert the index of the buffer to its corresponding RGB values.
    here is what I have done:

    Code :
        window_width  = 800;
     
        window_height = 600;
     
        size = window_width * window_height;
     
        pixels = new float[size*3];
     
        for(int i = 0, j = 0; i < size*3, j < size; i += 3, j++)
        {
            pixels[i+2] = bytes[i];
        }
     
        updateGL();


    void GlWidget:aintGL()
    {

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glDrawPixels(window_width,window_height,GL_RGB,GL_ FLOAT,pixels);
    }

    what am i missing?

  2. #2
    Newbie Newbie
    Join Date
    Nov 2013
    Posts
    1
    Quote Originally Posted by saman_artorious View Post
    I want to get RGB values from a 24 bit BGR data. This data is from a raw image without a header. I don't know how to convert the index of the buffer to its corresponding RGB values. here is what I have done:
    Code :
     window_width = 800; window_height = 600; size = window_width * window_height; pixels = new float[size*3]; for(int i = 0, j = 0; i &lt; size*3, j &lt; size; i += 3, j++) { pixels[i+2] = bytes[i]; } updateGL();
    void GlWidget:aintGL() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glDrawPixels(window_width,window_height,GL_RGB,GL_ FLOAT,pixels); } what am i missing?
    LÊ TRẦN HIẾU KÍNH TẶNG THẦY CÔ

    Tôi nhớ măi những ngày c̣n đi học
    Nhớ cô thầy và nhớ mái trường xưa
    Công ơn kia biết nói mấy cho vừa
    V́ hạnh phúc con em mà khổ nhọc ...

    Nơi đẹp nhất cuộc đời là trường học
    Cô với thầy phải khóc nhọc dắt d́u
    Có nhiều khi ngồi suy nghĩ đăm chiêu
    T́m phương cách để cháu con mở trí

    Chúng con trẻ nên rất lười suy nghĩ
    Tuổi hoa niên thường ôm lấy cuộc đời
    Vẫy tay chào niềm hoan lạc đón mời
    Mà quên chuyện, làm thầy cô phiền muộn

    Con tha thiết xin thầy cô thông cảm
    Đời học tṛ ngắn chẳng đầy gang
    Trông chớp mắt chỉ c̣n là kỷ niệm
    Rất mong manh và nhẹ tựa mây ngàn

    Xin tha thứ bởi người xưa c̣n "bỉnh chúc"
    Chúng con vui v́ bởi sợ ngày mai
    Bước ra trường là những tháng năm dài
    Thu lá úa hoặc mùa đông rét mướt

    Những năm cuối chúng con nguyện tiến bước
    Để đáp đền trong muôn một ơn sâu
    Chẳng buông xuôi như nước chảy dưới cầu
    Để xứng đáng với những tấm ḷng cao quư

    Ngày hôm nay chúng con nguyện ghi nhớ
    Ngày trọng đại thiêng liêng nhất cuộc đời
    Công thầy cô ôi cao cả tuyệt vời
    Như ánh sáng mặt trời khi ló rạng

    Nếu mai kia cuộc đời con xán lạn
    Đó cũng nhờ công đức của thầy cô
    Ân sâu này xin mang tận xuống đáy mồ
    Xin cô thầy nhận "chân t́nh tha thiết nhất!"

    ( Lê Trần Hiếu)

    ____________________________

    Nếu kiến thức là một thế giới mênh mông, th́ thầy cô là người mở rộng cánh cửa đưa ta đến chân trời bao la ấy.
    Nếu mỗi cuộc đời là một cánh diều th́ thầy cô là ngọn gió nâng những cánh diều bay cao...
    Cám ơn thầy, cô đă suốt đời tận tuỵ!Xem thêm

  3. #3
    Senior Member OpenGL Pro
    Join Date
    Jan 2012
    Location
    Australia
    Posts
    1,106
    You code is mostly correct although you can be a but more efficient by swapping in buffer
    Code :
    for (int i = 0; i < size*3; i += 3)
    {
      temp = bytes[i];
      bytes[i] = bytes[i+2];
      bytes[i+2] = temp;
    }

    if you want a new buffer
    Code :
    for (int i = 0; i < size*3; i++)
    {
      pixels[i] = bytes[i+2];
      pixels[i+1] = bytes[i+1];
      pixels[i+2] = bytes[i];
    }

Posting Permissions

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