Формат bmp описание. Что такое расширение файла BMP? Чем открыть BMP

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

Например, на данном рисунке выделен файл my-file.bmp , далее необходимо щелкнуть правой кнопкой мыши по этому файлу, и в меню файла выбрать опцию «сканировать с помощью AVG» . При выборе данного параметра откроется AVG Antivirus, который выполнит проверку данного файла на наличие вирусов.


Иногда ошибка может возникнуть в результате неверной установки программного обеспечения , что может быть связано с проблемой, возникшей в процессе установки. Это может помешать вашей операционной системе связать ваш файл BMP с правильным прикладным программным средством , оказывая влияние на так называемые «ассоциации расширений файлов» .

Иногда простая переустановка Adobe Illustrator CC может решить вашу проблему, правильно связав BMP с Adobe Illustrator CC. В других случаях проблемы с файловыми ассоциациями могут возникнуть в результате плохого программирования программного обеспечения разработчиком, и вам может потребоваться связаться с разработчиком для получения дополнительной помощи.


Совет: Попробуйте обновить Adobe Illustrator CC до последней версии, чтобы убедиться, что установлены последние исправления и обновления.


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


Осторожно: Поврежденный файл может повлечь за собой возникновение сопутствующего ущерба предыдущей или уже существующей вредоносной программы на вашем ПК, поэтому очень важно, чтобы на вашем компьютере постоянно работал обновленный антивирус.


Если ваш файл BMP связан с аппаратным обеспечением на вашем компьютере , чтобы открыть файл вам может потребоваться обновить драйверы устройств , связанных с этим оборудованием.

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


Совет: Если при попытке открыть файл BMP вы получаете сообщение об ошибке, связанной с.SYS file , проблема, вероятно, может быть связана с поврежденными или устаревшими драйверами устройств , которые необходимо обновить. Данный процесс можно облегчить посредством использования программного обеспечения для обновления драйверов, такого как DriverDoc .


Если шаги не решили проблему , и у вас все еще возникают проблемы с открытием файлов BMP, это может быть связано с отсутствием доступных системных ресурсов . Для некоторых версий файлов BMP могут потребоваться значительный объем ресурсов (например, память/ОЗУ, вычислительная мощность) для надлежащего открытия на вашем компьютере. Такая проблема встречается достаточно часто, если вы используете достаточно старое компьютерное аппаратное обеспечение и одновременно гораздо более новую операционную систему.

Такая проблема может возникнуть, когда компьютеру трудно справиться с заданием, так как операционная система (и другие службы, работающие в фоновом режиме) могут потреблять слишком много ресурсов для открытия файла BMP . Попробуйте закрыть все приложения на вашем ПК, прежде чем открывать Bitmap Image File. Освободив все доступные ресурсы на вашем компьютере вы обеспечите налучшие условия для попытки открыть файл BMP.


Если вы выполнили все описанные выше шаги , а ваш файл BMP по-прежнему не открывается, может потребоваться выполнить обновление оборудования . В большинстве случаев, даже при использовании старых версий оборудования, вычислительная мощность может по-прежнему быть более чем достаточной для большинства пользовательских приложений (если вы не выполняете много ресурсоемкой работы процессора, такой как 3D-рендеринг, финансовое/научное моделирование или интенсивная мультимедийная работа). Таким образом, вполне вероятно, что вашему компьютеру не хватает необходимого объема памяти (чаще называемой «ОЗУ», или оперативной памятью) для выполнения задачи открытия файла.

Современный человек часто работает с цифровыми изображениями различного формата. Они используются в Интернете, на компьютере, на смартфоне, в цифровом фотоаппарате, в экшн-камерах и других устройствах. Но есть один формат, который способен поставить в тупик некоторых пользователей - BMP. Это не особо распространенный тип изображений (по крайней мере, в наше время), но его все еще можно встретить. Поэтому неплохо было бы понять, что он из себя представляет. Попытаемся ответить на вопрос о том, что собой представляет формат BMP. Но сначала надо бы рассказать об истории его возникновения. Это поможет понять, зачем вообще он был создан. Итак, начнем с истории создания формата BMP.

Предыстория

Примерно в 1994 году разработчикам понадобился новый формат изображений, для использования в программных продуктах. Критерии были поставлены жесткие. Формат должен был работать с 256-цветной палитрой, обладать вменяемым размером. В скором времени был представлен формат BMP. Это было настоящим прорывом на то время. Он массово использовался практически везде. Даже в компании "Майкрософт", которая его и разработала.

Однако шли года, и данный формат перестал быть востребованным. Появились куда более продвинутые технологии компрессии. При этом качество цвета у новых форматов было куда лучше. Теперь BMP используется только в некоторых программах. Да и то, только в тех, разработчики которых не "заморачивались" на интерфейсе, например, ОС "Виндовс". Файл BMP безнадежно устарел. Но его почему-то все еще используют. А теперь попытаемся понять, что же это за зверь.

Что такое BMP?

BMP - это тип файла для хранения растровых изображений. Только растровых. Векторная графика не для этого формата. Особенностью данного формата является то, что он не использует никакого механизма сжатия. Теоретически, он должен обеспечивать высочайшее качество изображения. Но беда в том, что размер такого изображения будет просто гигантским. Именно поэтому данный формат растрового изображения и потерял популярность. Началось падение BMP с олимпа после появления PNG. Этот формат позволял не только сохранить изображение высокого качества при маленьком размере, но и можно было работать со слоями, что весьма важно в современном мире.

Однако пока еще BMP File существует и используется. Поэтому пользователям важно знать, чем можно открыть такие файлы и как сконвертировать его в более удобные форматы. Вот это сейчас и обсудим. Сразу стоит сказать, что таких программ великое множество. И все они способны адекватно работать с данным форматом, так как он довольно старый. Но вот в конвертации есть свои нюансы, о которых стоит упомянуть.

Чем открыть BMP

На данный момент с этой задачей может справиться более или менее продвинутый просмотрщик графических файлов. Как ни странно, даже стандартный вьювер "Виндовс" может открыть данный формат, хоть и с жуткими тормозами. Но лучше всего с этой задачей справляется FS Image Viewer и ACDSee. Такие продвинутые продукты, как "Фотошоп" и редакторы от "Корел" также способны работать с файлами данного формата. А вообще, все современные просмотрщики способны читать данный формат, так как он довольно-таки старый.

Однако все вышеперечисленное касается только операционных систем семейства "Виндовс". А как открыть файл BMP в "Линукс" или "Мак ОС"? Там есть специализированные программные продукты, поддерживающие данный формат. И их немало. Так что проблем не возникнет. А "Мак ОС" еще и поддерживает "Фотошоп", который и вовсе является всеядным. В довесок к остальным мультимедийным программам.

Конвертирование BMP

Как конвертировать BMP в JPG или какой-либо другой более привычный формат? Все зависит от того, какое качество картинки требуется на выходе. Если потери должны быть минимальными, то лучше использовать для этих целей "Фотошоп" или что-то равнозначное. Только "Фотошоп" позволяет сохранить изображение без потери качества. А если использовать для сохранения форматы PNG или PSD, то можно сохранить еще и слои. Если же качество не имеет значения, то можно использовать любой конвертер. Практически все они поддерживают конвертацию в JPEG, PNG, BMP и другие популярные форматы.

И опять же, выше были перечислены исключительно программы под "Виндовс". В "Линукс" или "Мак ОС" дела с конвертированием обстоят несколько иначе. В системе от Apple есть поддержка "Фотошопа", так что быстро перегнать изображение BMP в другой формат без потери качества не составляет проблемы. А вот в "Линукс" приходится пользоваться разнообразными конвертерами, которые часто не в состоянии обеспечить максимальное качество.

Для чего может использоваться этот формат?

Хоть формат BMP и устарел морально, но он все равно может использоваться в некоторых случаях. Достаточно того факта, что весь интерфейс "Виндовс" основан на данном растровом формате. Почему так? Потому, что использовать BMP очень удобно. Он обладает хорошей цветностью и полным отсутствием компрессии. Также изображения в этом формате можно редактировать какое угодно количество раз. И качество ничуть не пострадает. В отличие от того же JPEG. Как раз этим и объясняется живучесть этого формата. Многие разработчики программ под "Виндовс" также активно используют изображения BMP в своих продуктах.

Еще одна область применения формата - БИОСы компьютеров. Некоторые из них имеют весьма неплохие картинки (они могут включать в себя лого производителя, некоторые элементы интерфейса и прочее). Все они сделаны в формате BMP. Растровые изображения такого плана отлично показывают себя в системах без адекватного графического интерфейса. Потому они и используются в БИОСах.

Размер

Стоит отметить, что хорошая картинка в формате BMP будет "весить" немало. Все дело в том, что данный файловый формат не использует сжатие. Потому и размер не может быть уменьшен. К примеру, качественная фотография с разрешением 1280 на 720 точек будет иметь размер около 300 мегабайт. Такова особенность данного формата.

Внутреннее строение и расширение

Строение файла BMP можно описать так: это однослойное изображение растрового типа с приличной плотностью и хорошей цветопередачей. В этом и заключается главный недостаток формата - он не может использовать дополнительные слои. Потому они был вытеснен в "вебе" более продвинутыми форматами, поддерживающими многослойность.

Заключение

Итак, мы рассмотрели старый, но еще кое-где применяемый формат BMP. Это формат растровых изображений, который может похвастаться отсутствием всякой компрессии и совместимостью практически со всеми программами как просмотрщиками, так и редакторами. Он может применяться в современных программах для обеспечения работы интерфейса. А в операционной системе "Виндовс" он широко используется и по сей день. Конвертировать этот формат в какой-нибудь другой не составляет никакого труда. Для этого имеется огромное количество соответствующего софта. И не только под "Виндовс". В общем, сей формат еще будет жить, несмотря на появление более продвинутых и качественных.

В сегодняшнем уроке мы рассмотрим первый на нашем пути файловый формат. Различные форматы файлов предназначены для хранения разной информации. Каждый формат задаёт способ организации данных в файле.

Нам предстоит познакомиться с множеством различных форматов файлов: изображениями, трёхмерными моделями, аудио-файлами, видео-файлами. Начнём же с одного из самых простых графических форматов - BMP.

BMP - bitmap - битовое отображение. Понятие "отображение" взято из математики. В математике отображение стоит очень близко к понятию функции. Для простоты считайте, что слово bitmap - это картинка (хотя это и не так).

Информация о файле BMP (bmp file header)

У каждого файла bitmap есть заголовок из 14 байт. Поля этого заголовка:

2 байта. Строка BM (в Windows).
4 байта. Размер файла в байтах.

2 байта. Зарезервированное поле. Нужно инициализировать нулём.
4 байта. Адрес с которого начинается собственно изображение. Или по другому - смещение к началу изображения.

Давайте создадим изображение 100x100 пикселей. Каждый пиксель занимает 32 бита. Файловый заголовок будет выглядеть вот так:

BM
14+40+100*100*4
0
0
14+40

Важное замечание: на самом деле эти числа хранятся как последовательность байтов. Надеюсь, это понятно. Здесь (и в следующем примере) я расположил их в столбик для удобства восприятия.

Разберёмся со вторым полем. 14 - размер файлового заголовка. 40 - размер заголовка изображения (о нём ниже), 100*100 - количество пикселей. И кроме того, так как мы договорились, что каждый пиксель будет занимать 32 бита (4 байта), то нужно количество пикселей умножить на четыре.

Последнее поле: непосредственно изображение начинается сразу после файлового заголовка (14 байт) и заголовка изображения (40 байт).

Информация об изображении BMP (заголовок изображения)

Существует несколько версий BMP. Определить версию можно по размеру заголовка изображения. Мы будем пользоваться версией Windows V3, которая занимает 40 байт. Другие версии занимают 12, 64, 108, 124 байта.

В WinAPI для хранения bmp версии Windows V3 используется структура BITMAPINFOHEADER.

Поля заголовка Windows V3:

4 байта. Размер заголовка. Всегда задаётся 40 байт.
4 байта. Ширина изображения в пикселях.
4 байта. Высота изображения в пикселях.
2 байта. Данное поле всегда содержит единицу.
2 байта. Глубина цвета - количество битов в пикселе.
4 байта. Метод сжатия.
4 байта. Размер изображения. Здесь указывается размер непосредственно изображения - без учёта размера заголовков.
4 байта. Горизонтальное разрешение в пикселях на метр (количество пикселей в одном метре).
4 байта. Вертикальное разрешение в пикселях на метр (количество пикселей в одном метре).
4 байта. Количество цветов в палитре.
4 байта. Количество важных цветов в палитре.

Теперь посмотрим как будет выглядить заголовок изображения в нашем случае:

40
100
100
1
32
0
100*100*4
2795
2795
0
0

Для метода сжатия мы выбрали 0 - без сжатия. Возможны другие значения. Из интересных: BI_JPEG (значение - 4) - сжатие используемое в jpeg-изображениях и BI_PNG (значение - 5) - сжатие используемое в png-изображениях.

Горизонтальное и вертикальное разрешение мы задали равным 2795. В большинстве графических редакторов при создании изображения задаётся разрешение 71 пиксель на дюйм (ppi - pixel per inch)). Так вот, 71ppi это и есть 2795 пикселя на метр. Разрешение используется для придания изображению физической длины (для вывода на принтер например).

После заголовков расположена палитра цветов. Если её нету, то после заголовков сразу начинается изображение. Изображения с палитрами мы пока рассматривать не будем.

Данные изображения BMP

Изображение состоит из пикселей. Формат пикселей задаётся глубиной цвета (смотрите выше). В нашем примере мы использовали 32 бита на пиксель. 32-ух битный цвет обычно состоит из четырёх каналов: альфа (прозрачность), красный, зелёный, синий: ARGB (Alpha, Red, Green, Blue). Иногда альфа-канал не используется, в этом случае изображение всё равно может занимать 32 бита, просто при вычислениях не обращают внимания на значения одного канала. В этом случае названия каналов записываются так: XRGB.

Каждый канал занимает 8 бит (1 байт) и может принимать 256 значений: от нуля до 255 (от 0x00 до 0xff).

В bmp изображение хранится построчно снизу вверх, т.е. первыми записываются нижние строки, затем верхние. Удостоверьтесь в этом: загрузите одно из изображений из первого упражнения и сохраните только половину строк этого изображения в другой файл.

При 32-ухбитной глубине цвета каналы в bmp записываются так: BGRA. Именно в таком порядке: синий, зелёный, красный, альфа.

Размер строки данных в изображении bmp должнен быть кратен четырём (в байтах). Если это не так, то строка дополняется нулями. Это происходит если используется 1,2,4,8,16,24 бита на канал. Например, у нас есть изображение шириной в 3 пикселя и мы используем 16-битный цвет. Ширина строки: 16*3 = 48 (6 байт). Но длина строки должна быть кратной четырём, поэтому добавляются ещё два байта и длина строки в данном примере будет равна восьми байтам. Хотя в последних двух байтах каждой строки и не будет хранится полезной информации. Нужно учитывать условие кратности размера строки четырём при работе с не 32-ух битными изображениями.

Теперь продолжним с нашим примером и с помощью кода создадим изображение. Каждый пиксель будет инициализироваться случайным цветом:

Std::ofstream os("temp.bmp", std::ios::binary); unsigned char signature = { "B", "M" }; unsigned int fileSize = 14 + 40 + 100*100*4; unsigned int reserved = 0; unsigned int offset = 14 + 40; unsigned int headerSize = 40; unsigned int dimensions = { 100, 100 }; unsigned short colorPlanes = 1; unsigned short bpp = 32; unsigned int compression = 0; unsigned int imgSize = 100*100*4; unsigned int resolution = { 2795, 2795 }; unsigned int pltColors = 0; unsigned int impColors = 0; os.write(reinterpret_cast(signature), sizeof(signature)); os.write(reinterpret_cast(&fileSize), sizeof(fileSize)); os.write(reinterpret_cast(&reserved), sizeof(reserved)); os.write(reinterpret_cast(&offset), sizeof(offset)); os.write(reinterpret_cast(&headerSize), sizeof(headerSize)); os.write(reinterpret_cast(dimensions), sizeof(dimensions)); os.write(reinterpret_cast(&colorPlanes), sizeof(colorPlanes)); os.write(reinterpret_cast(&bpp), sizeof(bpp)); os.write(reinterpret_cast(&compression), sizeof(compression)); os.write(reinterpret_cast(&imgSize), sizeof(imgSize)); os.write(reinterpret_cast(resolution), sizeof(resolution)); os.write(reinterpret_cast(&pltColors), sizeof(pltColors)); os.write(reinterpret_cast(&impColors), sizeof(impColors)); unsigned char x,r,g,b; for (int i=0; i < dimensions; ++i) { for (int j=0; j < dimensions; ++j) { x = 0; r = rand() % 256; g = rand() % 256; b = rand() % 256; os.write(reinterpret_cast(&b),sizeof(b)); os.write(reinterpret_cast(&g),sizeof(g)); os.write(reinterpret_cast(&r),sizeof(r)); os.write(reinterpret_cast(&x),sizeof(x)); } } os.close();

В результате выполнения данного кода в папке с вашим проектом (если вы запускали программу через отладчик (F5)) или в папке Debug решения (если вы запускали исполняемый файл.exe) будет создан файл temp.bmp, который можно открыть в любом простмотрщике картинок. Изображение состоит из цветных точек.

Формат файла bmp относиться к растровым изображением и пользуется немалой популярностью. Его хорошо «понимает» любая операционная система виндовс.

Открытие файла с расширением bmp на компьютере, должно происходить автоматически – достаточно кликнуть по нему дважды левой кнопкой мыши.

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

Для этого нажмите на ваш файл bmp правой мышью, подведите курсор к строке «открыть с помощью» и выберите любую программу (если таковы установлены) по своему усмотрению, например паинт.

Какой программой открыть расширение bmp

Самый простой способ открыть формат bmp – это программа фотоальбом виндовс. Скачивать ее не нужно – идет вместе с операционкой, то есть должна быть у всех.

Вторая программа «паинт». Скачивать также не нужно – встроена в виндовс по умолчанию, кроме того, ею можно расширение bmp не только редактировать, но и после открытия сохранить в другом формате, например jpg – для просмотра в телефоне.

Третья программа «PhotoScape». Ее придется скачать. Она бесплатна, на русском и при ее помощи кроме просмотра можно картинки bmp обрабатывать.

Четвертое приложение Paint.NET. Она также бесплатная имеет русский интерфейс, удобная и очень проста в использовании, с множеством инструментов для корректировки и редактирования изображений и фото – это как бы заменитель стандартного «Paint»

Пятая программа «GIMP». Ее приравнивают к фотошопу. Это бесплатный графический редактор для профессионального использования, обладающий всеми необходимыми функциями и отличающийся простотой.

Предоставленные выше программы, открывающие файлы в этом формате – далеко не все. Их десятки, но этих обычному пользователю компьютера вполне достаточно. Успехов.

О том, как спрятать текст в bitmap-изображении. К сожалению, топиков на эту тему я не нашел и решил восполнить данный пробел. Под катом Вы найдете способ сокрытия текста в bitmap"е, а также реализацию на C#.

Постановка задачи

Спрятать произвольный текст в кодировке windows-1251 в 24-разрядный bitmap рисунок и излвечь его обратно без искажений.

Структура bmp-файла

Для начала напомню, что из себя представляет bitmap-файл. Я уверен, что Вы все это прекрасно знаете, просто будет нагляднее описывать алгоритм сокрытия текста на базе изложенного материала. И так. Любой bmp-файла состоит из четырех частей:
  1. Заголовок файла
  2. Заголовок изображения (может отсутствовать)
  3. Палитра (может отсутствовать)
  4. Само изображение
Заголовок файла содержит служебную информацию, в том числе разрядность рисунка. Кстати, для 24-разрядного рисунка палитра не используется. По скольку мы в задании четко обозначили, что будем работать только с 24-разрядными изображениями, то в идеале можно проверить входное изображение на соответствие требованиям.
Теперь перейдем, непосредственно, к самому изображению. Как Вам известно, формат bmp по умолчанию не предусматривает сжатие (хотя есть поддержка сжатия по алгоритму RLE). Таким образом каждый пиксел в нашем случае кодируется 24 битами, по байту на каждую компоненту цвета. Следовательно, мы можем закодировать ни больше ни меньше, а ровно 16777216 цветов. Для наглядности приведу рисунок:

Идея алгоритма сокрытия текста

Наверное, Вы уже догадались в чем идея. Дело все в том, что глаз среднестатистического человека (не профессионального художника или фотографа) различает намного меньше цветов, чем было указано выше. Ни в одной книге нет четкого ответа на вопрос, сколько все же цветов различает глаз, но самая большая цифра, которую я встретил - 10 млн. Отсюда следует, что несколько младших битов из восьми, отводимых на каждую компоненту цвета, можно позаимствовать для наших корыстных целей.
Немного цифр: для примера возьмем и нагло отнимем у RGB компонент по два младщих бита. То есть из 24 бит у нас останется 18, которыми можно закодировать ровно 262144 цветов. Теперь возьмем текст в кодировке windows-1251, в которой каждый символ представляется 8ю битами. Путем несложных математический вычислений получаем, что 3 символа можно сохранить в 4 пикселах. Таким образом, в картинке 1024x768, где 786432 пикселов можно сохранить 589824 символа. Неплохо, да? Для наглядности приведу две картинки. На первой исходное изображение, а на второй изображение, у которого младшие два бита каждой компоненты цвета заполнены текстом. Сразу оговорюсь, что изображения сконвертированы в png, чтобы пожалеть траффик.

Исходное изображение:


Изображение, содержащее текст


Если приглядется, то на втором изображении цвета кажутся тусклее. Да, это так. Но мы то с Вами знаем, что в представленном изображении что-то не так, а если бы не знали, то и не догадались бы, что в нем спрятан какой-то текст. Кстати, в изображении спрятана фраза «Hello World!!! =)» размноженная 100 раз.
Вот и все. Как Вы видите, идея предельно проста. Кстати говоря, представленный метод называется LSB (спасибо frol за подсказку). Напоследок, можете посмотреть реализацию на языке C#.

Реализация на C#

Представленная реализация не претендует на награду в стиле «Совершенный код», она лишь демонстрирует описанный алгоритм на практике. В данном случае я гнался не за красотой кода, а за наглядностью.

Просмотров