C++ Конвертирование BMP 24 -> 8 bit

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by fire64, 25 Nov 2010.

  1. fire64

    fire64 Elder - Старейшина

    Joined:
    1 Apr 2008
    Messages:
    251
    Likes Received:
    22
    Reputations:
    5
    Подскажите. как сковертировать BMP файл из 24 битного формата в 8 битный ?
     
  2. St0nX

    St0nX Elder - Старейшина

    Joined:
    19 May 2007
    Messages:
    257
    Likes Received:
    46
    Reputations:
    0
    Самый простой и быстрый способ отбросить младшие биты.
     
  3. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    дык просто так не сделаешь. потому что когда 8 бит то импользуется еще дополнительная палитра цветов
     
  4. fire64

    fire64 Elder - Старейшина

    Joined:
    1 Apr 2008
    Messages:
    251
    Likes Received:
    22
    Reputations:
    5
    Если я правильно понял, то при использовании 24 битных изображений
    пиксель состоит из R G B, а в 8 битных изображениях, вместо цвета, указывается позиция нужного цвета в палитре.

    Значит тупо считываем пиксели, записываем значение цвета в палитру и заменяем цвета пикселя на индекс.

    Но возникает вопрос, а что делать если количество цветов в 24 битном изображении больше чем 256 ?
     
    #4 fire64, 25 Nov 2010
    Last edited: 25 Nov 2010
  5. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    именно по этому и надо вычислять каким цветом надо жертвовать. чаще всего похожие цвета надо объединять