Цитата:
|
сжимаются те .bmp которые ниже 24 бит на пиксель.
|
Ниже 24 бит - это 8 бит, то есть 256 цветов, индексированное изображение. Никто его не сжимает, нет смысла. Смысл сжимать есть как раз для 32 бит, так как вес уже ощутимый.
Я разбирал bmp, когда делал "читалку" файла ICO. Там действительно не сжимается 32 бита для маленьких размеров. Но, например, "vista icon" содержит бмп-файл с PNG сжатием (в спецификации BMP возможен также и JPG, но в иконках он бессмысленен). Спецификация также предусматривает изображение с 16 бит на пиксель - я не смог найти или создать в редакторах ни одного примера такого изображения, они может и были в эпоху виндос 3, а может и в миллениуме)) Вобщем мой класс читает все, но только не 16 бит. Если хотите - поделюсь (впрочем бмп-читалки можно найти в разных библиотеках). Что касается 32-бит бмп, то там действительно все просто, блок имеджДата и есть битмапдата (единственно он может быть зеркально перевернут по вертикали), 32-битный паддинг строк развертки делать не надо, данные итак 32 бита, то есть просто читаем их подряд и задаем битмапдате setPixel32() в двойном цикле ширина/высота.