singlepost

[WinAPI] BMP 24 bit -> 8 bit, Как? << На главную или назад  

Всем Добрый вечер!

Дали задание переделать 24-битное изображение (bmp) в цветное 8-битное. Использовать нужно ВинАПИ-шные функции.

Сначала я решил конвертировать картинку вручную, но во время процесса гугления, наткнулся на эту самую функцию: BitBlt(), а точнее, я прочитал, что её можно использовать для решения моей задачи.

Одно НО, я с ВинАПИ "на Вы", подробных туториалов по этой функции не нашел, в тех что видел – ни слова об преобразовании 24 -> 8.

Или же есть другие варианты преобразования через WinAPI? Чем проще – тем лучше)

6 ответов в теме “[WinAPI] BMP 24 bit -> 8 bit, Как?”

  1. 6
    Леонид Максимов ответил:

    Дмитрий, требуется не чб :)

    если уж руками, то потребуется построить саму палитру, для чего нужно по гистограмме выбрать наиболее важные цвета, выбрать оставшиеся цвета так, чтобы обеспечить минимальное расхождение, а потом уже переводить цвет в индексированный.

  2. 5
    Дмитрий Щёголев ответил:

    Ну во первых в 8 битных изображениях изпользуется палитра из 256 цветов в соответствующем формате. Поэтому или искать индекс в палитре соответствующий ближайшему цвету или преобразовать цветную картинку в чб.

  3. 4
    Сергей Переславцев ответил:

    //ru.wikipedia.org/wiki/BMP

  4. 3
    Леонид Максимов ответил:

    если только WinAPI, то нарисуйте его в соответствующем контексте.

  5. 2
    Валерий Лаптев ответил:

    Еслис WinAPI на вы, то MSDN тебе в руки! И вперед!

  6. 1
    Артур Терменжи ответил:

    о нет, здесь BitBlt не при чем. она всего лишь копирует картинку с контекста на контекст, не масштабируя ее при этом. то есть почитай, что такое контексты в винапи
    а для реализации твоей задачи тебе нужно кое что другое
    к сожалению не помню, т.к. пары по обработке изображений пропускал(

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.