- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
//bytes 0-13
bmp.push_back('B'); bmp.push_back('M'); //0: bfType
bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //2: bfSize; size not yet known for now, filled in later.
bmp.push_back(0); bmp.push_back(0); //6: bfReserved1
bmp.push_back(0); bmp.push_back(0); //8: bfReserved2
bmp.push_back(54 % 256); bmp.push_back(54 / 256); bmp.push_back(0); bmp.push_back(0); //10: bfOffBits (54 header bytes)
//bytes 14-53
bmp.push_back(40); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //14: biSize
bmp.push_back(width % 256); bmp.push_back(width / 256); bmp.push_back(0); bmp.push_back(0); //18: biWidth
bmp.push_back(height % 256); bmp.push_back(height / 256); bmp.push_back(0); bmp.push_back(0); //22: biHeight
bmp.push_back(1); bmp.push_back(0); //26: biPlanes
bmp.push_back(outputChannels * 8); bmp.push_back(0); //28: biBitCount
bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //30: biCompression
bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //34: biSizeImage
bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //38: biXPelsPerMeter
bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //42: biYPelsPerMeter
bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //46: biClrUsed
bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //50: biClrImportant
blackhearted 30.10.2014 17:43 # −2
kipar 30.10.2014 18:08 # −1
Наркоманы скорее. Байтоёбики, да и все остальные, сразу массив заполнят.
bormand 30.10.2014 19:09 # −1
Все остальные поюзают какой-нибудь libpng. Кому нужны эти BMP в 2014?
3.14159265 30.10.2014 22:29 # −1
Отчасти непонятно почему не расцвели lossy-only форматы из новых видеокодеков, использующиеся в режиме image (по сути видео из 1-го кадра) тот же x264, который жмёт раза в 2 лучше чем jpeg.
Пытались-пытались делали вейвлетный JPEG-2000, который на поверку оказался кокашкой, ms сделала jpeg-hr, а гляди и поныне бал правит убогий формат 25 летней давности.
bormand 30.10.2014 22:47 # −1
> убогий формат 25 летней давности
Безобразно, зато единообразно.
bormand 30.10.2014 22:53 # −3
jpeg2000 вроде бы загнулся именно из-за этого, а не из-за технических проблем.
3.14159265 31.10.2014 12:39 # +1
Это означает при одинаковом визуальном восприятии.
>jpeg2000 вроде бы загнулся именно из-за этого
Загнулся из-за патентов блядских на вейвлеты. И в принципе он был не так уж и хорош.
blackhearted 31.10.2014 10:43 # −1
И как раз из ПНГ богоугодного конвертится, дорогуша.
bormand 31.10.2014 10:50 # −1
blackhearted 31.10.2014 11:17 # −1
bormand 31.10.2014 11:57 # −2
P.S. Код из топика справится с рисунком ширины 17 или, к примеру, 31?
blackhearted 31.10.2014 13:03 # −1
blackhearted 31.10.2014 11:18 # +1
Канеша, за границами браузерного дроча с цсс и яваскриптиком и прочего асп. нета с жабастой хуетой.
defecate-plusplus 31.10.2014 11:25 # +2
Vasiliy 31.10.2014 12:27 # −1
Xom94ok 31.10.2014 19:52 # 0
bormand 31.10.2014 20:23 # −1
bormand 31.10.2014 20:33 # 0
guest 01.11.2014 15:33 # −3
roman-kashitsyn 30.10.2014 18:08 # −3
kipar 30.10.2014 18:37 # +2
roman-kashitsyn 30.10.2014 19:55 # −2
В байты рано или поздно придётся писать.
В предположении, что бмп-либы у нас нет, и нормального бинарного энкодера тоже, типичный quick-and-dirty хак.
TarasB 30.10.2014 20:53 # −1
а код темы- уебанство и реальное говно
bormand 30.10.2014 21:46 # −2
В заголовке BMP big-endian что-ли?
Анонимус 30.10.2014 21:50 # +1
bormand 30.10.2014 21:51 # −1
Для передачи потокового видео. Угу.
Анонимус 30.10.2014 21:53 # 0
гораздно смешнее что Тарас на сях пишет а не на паскале
3.14159265 30.10.2014 22:26 # +1
Анонимус 30.10.2014 22:30 # −2
tirinox 31.10.2014 14:19 # −1
TarasB 30.10.2014 22:05 # −2
bormand 30.10.2014 22:12 # +1
P.S. Если твой BMP-кодек с первого раза правильно запишет 24-битную картинку с шириной, не кратной 4 - ты очень внимательный и аккуратный программист.
bormand 30.10.2014 22:17 # −2
3.14159265 30.10.2014 22:28 # −1
Вот вам плюс, батенька. Бесполезнейшая трата времени.
bormand 30.10.2014 22:35 # −1
Ну в своё время выводить 16 цветную BMP'шку в борманд паскале было интересно (и, наверное, полезно)... С JPEG'ом тоже было очень интересно повозиться - все эти дискретные косинусные преобразования, квантование, хаффмановское кодирование... Покопаться в форматах - это интересно и полезно.
Но писать кривожопый велосипед, когда космические корабли бороздят просторы большого театра полно готовых отлаженных либ - это уже моветон.
Анонимус 30.10.2014 22:35 # −1
Ну, кроме студента, который изучает для себя чудесный мир байтов.
bormand 30.10.2014 22:39 # −2
Для популярного в прошлом веке формата картинок.
fxd.
Анонимус 30.10.2014 22:43 # −2
Лучше уж сразу .pcx. И alchemy в помощь.
TarasB 31.10.2014 13:02 # +1
guest 01.11.2014 15:33 # +2
guest 02.11.2014 14:18 # 0
guest 02.11.2014 14:29 # 0
guest 30.12.2014 20:10 # 0
tirinox 31.10.2014 14:21 # −3
blackhearted 31.10.2014 16:08 # −2
Как тут не начать писать велосипед?
Ну вот такая предметная облость, битмап всигда по ширине кратен 4.
kipar 30.10.2014 22:02 # −1
про ендианнес уже ответили. Ну и никто не запрещает однобайтовые поля использовать.
bormand 30.10.2014 22:08 # −2
В шиндовз.аш? :)
kipar 30.10.2014 22:11 # −2
bormand 30.10.2014 22:06 # −3
Простенький кодек с putByte, putInt и т.п. можно наговнякать минут за 10... Всё лучше, чем байты по одному укладывать.
roman-kashitsyn 30.10.2014 22:23 # −2
roman-kashitsyn 31.10.2014 09:37 # 0
inkanus-gray 31.10.2014 02:14 # −1
Страдания маленького Ст Вертера.
Анонимус 30.10.2014 21:10 # −2
inkanus-gray 31.10.2014 02:17 # −1
DesmondHume 30.10.2014 21:31 # −4
guest 02.11.2014 14:19 # −3