Определение
Инкапсулирует точечный рисунок GDI+, состоящий из данных пикселей графического изображения и атрибутов рисунка. Encapsulates a GDI+ bitmap, which consists of the pixel data for a graphics image and its attributes. Объект Bitmap используется для работы с изображениями, определяемыми данными пикселей. A Bitmap is an object used to work with images defined by pixel data.
Примеры
В следующем примере кода показано, как создать новый Bitmap из файла, используя методы GetPixel и SetPixel для перекрашивания изображения. The following code example demonstrates how to construct a new Bitmap from a file, using the GetPixel and SetPixel methods to recolor the image. Он также использует свойства PixelFormat, Width и Height. It also uses the PixelFormat, Width, and Height properties.
Этот пример предназначен для использования с Windows Forms, содержащим Label, PictureBox и Button с именами Label1 , PictureBox1 и Button1 соответственно. This example is designed to be used with a Windows Forms that contains a Label, PictureBox, and Button named Label1 , PictureBox1 , and Button1 , respectively. Вставьте код в форму и свяжите метод Button1_Click с событием Click кнопки. Paste the code into the form and associate the Button1_Click method with the button’s Click event.
Комментарии
Точечный рисунок состоит из точечных данных для графического изображения и его атрибутов. A bitmap consists of the pixel data for a graphics image and its attributes. Существует множество стандартных форматов для сохранения растрового изображения в файл. There are many standard formats for saving a bitmap to a file. GDI+ GDI+ поддерживает следующие форматы файлов: BMP, GIF, EXIF, JPG, PNG и TIFF. supports the following file formats: BMP, GIF, EXIF, JPG, PNG and TIFF. Дополнительные сведения о поддерживаемых форматах см. в разделе Типы точечных рисунков. For more information about supported formats, see Types of Bitmaps.
Вы можете создавать изображения из файлов, потоков и других источников с помощью одного из конструкторов Bitmap и сохранять их в поток или в файловой системе с помощью метода Save. You can create images from files, streams, and other sources by using one of the Bitmap constructors and save them to a stream or to the file system with the Save method. Изображения рисуются на экране или в память с помощью метода DrawImage объекта Graphics. Images are drawn to the screen or to memory by using the DrawImage method of the Graphics object. Список разделов, посвященных работе с файлами изображений, см. в разделе Работа с изображениями, точечными рисунками, значками и метафайлами. For a list of topics about working with image files, see Working with Images, Bitmaps, Icons, and Metafiles.
Класс Bitmap недоступен для разных доменов приложений. The Bitmap class is not accessible across application domains. Например, если создать динамический AppDomain и создать несколько кистей, перьев и точечных рисунков в этом домене, а затем передать эти объекты обратно в основной домен приложения, вы можете успешно использовать перья и кисти. For example, if you create a dynamic AppDomain and create several brushes, pens, and bitmaps in that domain, then pass these objects back to the main application domain, you can successfully use the pens and brushes. Однако при вызове метода DrawImage для рисования упакованного Bitmap вы получаете следующее исключение. However, if you call the DrawImage method to draw the marshaled Bitmap, you receive the following exception.
Удаленное взаимодействие не может найти поле "Native Image" в типе "System. Drawing. Image". Remoting cannot find field "native image" on type "System.Drawing.Image".
Конструкторы
Инициализирует новый экземпляр класса Bitmap из указанного существующего изображения. Initializes a new instance of the Bitmap class from the specified existing image.
Инициализирует новый экземпляр класса Bitmap из указанного существующего изображения, масштабированного до заданного размера. Initializes a new instance of the Bitmap class from the specified existing image, scaled to the specified size.
Инициализирует новый экземпляр класса Bitmap из указанного существующего изображения, масштабированного до заданного размера. Initializes a new instance of the Bitmap class from the specified existing image, scaled to the specified size.
Инициализирует новый экземпляр класса Bitmap с заданным размером. Initializes a new instance of the Bitmap class with the specified size.
Инициализирует новый экземпляр класса Bitmap с заданным размером и с разрешением указанного объекта Graphics. Initializes a new instance of the Bitmap class with the specified size and with the resolution of the specified Graphics object.
Инициализирует новый экземпляр класса Bitmap с заданным размером, форматом и данными пикселей. Initializes a new instance of the Bitmap class with the specified size, pixel format, and pixel data.
Инициализирует новый экземпляр класса Bitmap с заданными значениями размера и формата. Initializes a new instance of the Bitmap class with the specified size and format.
Инициализирует новый экземпляр класса Bitmap из указанного потока данных. Initializes a new instance of the Bitmap class from the specified data stream.
Инициализирует новый экземпляр класса Bitmap из указанного потока данных. Initializes a new instance of the Bitmap class from the specified data stream.
Инициализирует новый экземпляр класса Bitmap из указанного файла. Initializes a new instance of the Bitmap class from the specified file.
Инициализирует новый экземпляр класса Bitmap из указанного файла. Initializes a new instance of the Bitmap class from the specified file.
Инициализирует новый экземпляр класса Bitmap из указанного ресурса. Initializes a new instance of the Bitmap class from a specified resource.
Свойства
Возвращает флаги атрибутов для пиксельных данных этого объекта Image. Gets attribute flags for the pixel data of this Image.
(Унаследовано от Image)
Возвращает массив идентификаторов GUID, представляющих размеры кадров в объекте Image. Gets an array of GUIDs that represent the dimensions of frames within this Image.
(Унаследовано от Image)
Возвращает высоту объекта Image в пикселях. Gets the height, in pixels, of this Image.
(Унаследовано от Image)
Возвращает горизонтальное разрешение объекта Image в пикселях на дюйм. Gets the horizontal resolution, in pixels per inch, of this Image.
(Унаследовано от Image)
Возвращает или задает палитру цветов, используемую для объекта Image. Gets or sets the color palette used for this Image.
(Унаследовано от Image)
Возвращает ширину и высоту данного изображения. Gets the width and height of this image.
(Унаследовано от Image)
Возвращает формат пикселей для этого объекта Image. Gets the pixel format for this Image.
(Унаследовано от Image)
Возвращает идентификаторы элементов свойств, хранящихся в объекте Image. Gets IDs of the property items stored in this Image.
(Унаследовано от Image)
Возвращает все элементы свойств (части метаданных), хранящихся в объекте Image. Gets all the property items (pieces of metadata) stored in this Image.
(Унаследовано от Image)
Возвращает формат файла этого объекта Image. Gets the file format of this Image.
(Унаследовано от Image)
Возвращает ширину и высоту изображения в пикселях. Gets the width and height, in pixels, of this image.
(Унаследовано от Image)
Возвращает или задает объект, предоставляющий дополнительные данные об изображении. Gets or sets an object that provides additional data about the image.
(Унаследовано от Image)
Возвращает вертикальное разрешение объекта Image в пикселях на дюйм. Gets the vertical resolution, in pixels per inch, of this Image.
(Унаследовано от Image)
Возвращает ширину объекта Image в пикселях. Gets the width, in pixels, of this Image.
(Унаследовано от Image)
Методы
Создает точную копию данного объекта Image. Creates an exact copy of this Image.
(Унаследовано от Image)
Создает копию раздела этого объекта Bitmap, определяемого структурой Rectangle и с указанным перечислением PixelFormat. Creates a copy of the section of this Bitmap defined by Rectangle structure and with a specified PixelFormat enumeration.
Создает копию части этого изображения Bitmap, определяемого заданным перечислением PixelFormat. Creates a copy of the section of this Bitmap defined with a specified PixelFormat enumeration.
Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.
(Унаследовано от MarshalByRefObject)
Освобождает все ресурсы, используемые этим объектом Image. Releases all resources used by this Image.
(Унаследовано от Image)
Освобождает неуправляемые ресурсы, используемые объектом Image, а при необходимости освобождает также управляемые ресурсы. Releases the unmanaged resources used by the Image and optionally releases the managed resources.
(Унаследовано от Image)
Определяет, равен ли заданный объект текущему объекту. Determines whether the specified object is equal to the current object.
(Унаследовано от Object)
Создает изображение Bitmap для значка из дескриптора Windows. Creates a Bitmap from a Windows handle to an icon.
Создает изображение Bitmap из указанного ресурса Windows. Creates a Bitmap from the specified Windows resource.
Возвращает границы изображения в указанных единицах измерения. Gets the bounds of the image in the specified unit.
(Унаследовано от Image)
Возвращает информацию о параметрах, поддерживаемых указанным кодировщиком изображения. Returns information about the parameters supported by the specified image encoder.
(Унаследовано от Image)
Возвращает количество кадров указанного размера. Returns the number of frames of the specified dimension.
(Унаследовано от Image)
Служит хэш-функцией по умолчанию. Serves as the default hash function.
(Унаследовано от Object)
Создает объект точечного рисунка GDI GDI из данного изображения Bitmap. Creates a GDI GDI bitmap object from this Bitmap.
Создает объект точечного рисунка GDI GDI из данного изображения Bitmap. Creates a GDI GDI bitmap object from this Bitmap.
Возвращает дескриптор для значка. Returns the handle to an icon.
Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра. Retrieves the current lifetime service object that controls the lifetime policy for this instance.
(Унаследовано от MarshalByRefObject)
Возвращает цвет указанного пикселя в этом изображении Bitmap. Gets the color of the specified pixel in this Bitmap.
Возвращает указанный элемент свойства из объекта Image. Gets the specified property item from this Image.
(Унаследовано от Image)
Возвращает эскиз для этого объекта Image. Returns a thumbnail for this Image.
(Унаследовано от Image)
Возвращает объект Type для текущего экземпляра. Gets the Type of the current instance.
(Унаследовано от Object)
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. Obtains a lifetime service object to control the lifetime policy for this instance.
(Унаследовано от MarshalByRefObject)
Блокирует объект Bitmap в системной памяти. Locks a Bitmap into system memory.
Блокирует объект Bitmap в оперативной памяти. Locks a Bitmap into system memory.
Делает прозрачным прозрачный цвет по умолчанию для этого элемента Bitmap. Makes the default transparent color transparent for this Bitmap.
Делает заданный цвет прозрачным для данного изображения Bitmap. Makes the specified color transparent for this Bitmap.
Создает неполную копию текущего объекта Object. Creates a shallow copy of the current Object.
(Унаследовано от Object)
Создает неполную копию текущего объекта MarshalByRefObject. Creates a shallow copy of the current MarshalByRefObject object.
(Унаследовано от MarshalByRefObject)
Удаляет указанный элемент свойства из этого Image. Removes the specified property item from this Image.
(Унаследовано от Image)
Поворачивает, зеркально отражает, либо поворачивает и зеркально отражает объект Image. Rotates, flips, or rotates and flips the Image.
(Унаследовано от Image)
Сохраняет данное изображение в указанный поток с заданным кодировщиком и определенными параметрами кодировщика изображения. Saves this image to the specified stream, with the specified encoder and image encoder parameters.
(Унаследовано от Image)
Сохраняет данное изображение в указанный поток в указанном формате. Saves this image to the specified stream in the specified format.
(Унаследовано от Image)
Сохраняет объект Image в указанный файл или поток. Saves this Image to the specified file or stream.
(Унаследовано от Image)
Сохраняет объект Image в указанный файл с заданным кодировщиком и определенными параметрами кодировщика изображения. Saves this Image to the specified file, with the specified encoder and image-encoder parameters.
(Унаследовано от Image)
Сохраняет объект Image в указанный файл в указанном формате. Saves this Image to the specified file in the specified format.
(Унаследовано от Image)
Добавляет кадр в файл или поток, указанный в предыдущем вызове метода Save. Adds a frame to the file or stream specified in a previous call to the Save method. Используйте данный метод для сохранения выбранных кадров из многокадрового изображения в другое многокадровое изображение. Use this method to save selected frames from a multiple-frame image to another multiple-frame image.
(Унаследовано от Image)
Добавляет кадр в файл или поток, указанный в предыдущем вызове метода Save. Adds a frame to the file or stream specified in a previous call to the Save method.
(Унаследовано от Image)
Выделяет кадр, определяемый размером и индексом. Selects the frame specified by the dimension and index.
(Унаследовано от Image)
Задает цвет указанного пикселя в этом объекте Bitmap. Sets the color of the specified pixel in this Bitmap.
Сохраняет элемент свойства (часть метаданных) в Image. Stores a property item (piece of metadata) in this Image.
(Унаследовано от Image)
Задает разрешение для этого изображения Bitmap. Sets the resolution for this Bitmap.
Возвращает строку, представляющую текущий объект. Returns a string that represents the current object.
(Унаследовано от Object)
Разблокирует это изображение Bitmap из оперативной памяти. Unlocks this Bitmap from system memory.
Явные реализации интерфейса
Заполняет объект SerializationInfo данными, необходимыми для сериализации целевого объекта. Populates a SerializationInfo with the data needed to serialize the target object.
Универсальный англо-русский словарь . Академик.ру . 2011 .
Смотреть что такое "bitmap image" в других словарях:
bitmap image — taškinis paveikslas statusas T sritis informatika apibrėžtis ↑Taškinės grafikos paveikslas. Sudarytas iš eilutėmis ir stulpeliais išdėstytų mažų taškų, kurie matomi daug kartų pad >Enciklopedinis kompiuterijos žodynas
bitmap image — Растровое изображение (Bitmap image) Изображение, состоящее из растровых (микроштриховых) элементов [пиксел] … Шрифтовая терминология
Bitmap image — An image in a computer which is composed of pixels. Pixels are very small dots. Thousands of pixels are contained in each centimeter of text displayed on a computer screen. See also Vector graphics and Screen dump … International financial encyclopaedia
bitmap image — see … Glossary of Art Terms
Bitmap — In computer graphics, a bitmap or pixmap is a type of memory organization or image file format used to store digital images. The term bitmap comes from the computer programming terminology, meaning just a map of bits , a spatially mapped array of … Wikipedia
Image file formats — are standardized means of organising and storing images. This entry is about digital image formats used to store photographic and other images; (for disk image file formats see Disk image). Image files are composed of either pixel or vector… … Wikipedia
Bitmap — Image matricielle Exemple d image matricielle Une image matricielle (ou image en mode point, ou en anglais une « bitmap » ou « raster ») est une image numérique dans un format de données qui se compose d un tableau de pixels… … Wikipédia en Français
Image bitmap — Image matricielle Exemple d image matricielle Une image matricielle (ou image en mode point, ou en anglais une « bitmap » ou « raster ») est une image numérique dans un format de données qui se compose d un tableau de pixels… … Wikipédia en Français
Image Matricielle — Exemple d image matricielle Une image matricielle (ou image en mode point, ou en anglais une « bitmap » ou « raster ») est une image numérique dans un format de données qui se compose d un tableau de pixels ou de points de… … Wikipédia en Français
Image Numérique — On désigne sous le terme d image numérique toute image (dessin, icône, photographie …) acquise, créée, traitée ou stockée sous forme binaire (suite de 0 et de 1) : Acquise par des Convertisseurs Analogique Numérique situés dans des… … Wikipédia en Français
Image en mode point — Image matricielle Exemple d image matricielle Une image matricielle (ou image en mode point, ou en anglais une « bitmap » ou « raster ») est une image numérique dans un format de données qui se compose d un tableau de pixels… … Wikipédia en Français
Создайте в графическом редакторе PAINT растровое изображение размером 50*35 пикселов. Выберите максимальный масштаб изображения и включите сетку. Сохраните рисунок в формате BMP как монохромный (файл 50_35.bmp).

Откройте листинг файла 50_35.bmp в приложении Commander (TC, VC или WC) для просмотра (клавиша F3) в шестнадцатеричном (HEX) представлении.

Сопоставим картинку растрового изображения и HEX коды в листинге файла 50_35.bmp.
Коды с 19-го по 23-й (32 00 00 00) определяют размер растра (число пикселов) по горизонтали. Коды с 24-го по 27-й (23 00 00 00) определяют размер растра по вертикали. Чтобы убедиться в этом воспользуйтесь калькулятором. В рассматриваемом примере размер растра – 50 * 35. HEX коду 32 соответствует десятичное (DEC) число 50, HEX коду 23 – DEC число 35.

На размера растра отводится 4 байта (HEX кода). Одним байтом определяется размер от 0 до 255. При превышении 255 (код FF) будет задействован следующий байт. Например, DEC числу 256 соответствует HEX код 100. Размер растра 256 будет представлен в листинге файла (00 01 00 00).

Коды символов, начиная с 63-го и до конца файла, содержат последовательность данных о цвете точек растра – в порядке слева направо вдоль каждой ряда и снизу вверх по рядам. Один байт описывает 8 точек, белая точка в BIN коде описывается единицей, черная – нулем.

Сколько байт необходимо для описания 50 точек в одном ряду? Не менее 7 (7*8=56). Но используется 8 (8*8=64), соблюдается кратность 4 байтам (4*8=32). Обратите внимание в листинге файла на HEX коды в конце описания каждого ряда повторяются байты FF FF C0 00. Эти байты описывают последние 32 точки из 64-х. Из них 14 несуществующих точек (64-50=14) описаны нулями.

Точки какого ряда описаны кодом FC 1F? Отсчитываем ряды по (по 8 байт в каждом), можно также ориентироваться на код (C0 00) в конце каждого ряда. Получаем 11-й ряд. В нем находятся 5 точек. Проверяем результат с помощью калькулятора.

Программа последовательно считывает из BMP-файла HEX-коды. По этим данным определяется порядковый номер каждой черной точки в ряду, начиная слева. Порядковые номера черных точек каждого ряда заносятся в список, который после окончании чтения ряда записывается в файл Result.txt.
Информация, записанная в файл Result.txt:
Описание программы
Из BMP-файла последовательно считываются байты с помощью функции read-char. Данные, которые будут использоваться в программе, запоминаются в переменных, остальные пропускаются.
Размер растра (xsize и ysize) определяется парой из 4-х байт. Как объединить эти 4 байта в одно число? Рассмотрим более простую задачу. Как из 4-х цифр «5» «8» «9» и «1» сформировать число 1985? Для этого каждую цифру сдвигаем влево на соответствующее количество разрядов (добавляем нули слева), а результат суммируем.

Аналогично решается задача формирования 4-х байтного числа. В пользовательской функции (r) из 4-х байтов сложением формируется одно число. Каждый байт перед сложением сдвигается на соответствующее количество разрядов (1, 2 и 3 байта). Сдвиг выполняется функцией Lsh, параметры сдвига указывается в битах (8, 16 и 24). Функция (r) возвращает число в 10-тичном представлении. Результат запоминается в переменных (xsize и ysize).
Далее считываются и обрабатываются точки, на предмет выявления их цвета. Используется внешний цикл по ysize и внутренний цикл по xsize.
Учитывая, что число байтов, которые описывают один ряд точек, кратно 4 объединим их по аналогии с предыдущей задачей. Только в этом случае из 4-х цифр «5» «8» «9» и «1» будем формировать число 5891:

Эту задачу в программе решает пользовательская функция (r). Она объединяет 4-х байта в 32 разрядное число, которое сохраняется в переменной n. В функции (r) также создается 32 разрядное число (сохраняется в переменной mask), первый бит которого – 1(единица), остальные – 0 (ноль). Начальное значение «маски» формируется путем побитового сдвига единицы влево на 31 разряд (lsh 1 31):
![]()
Отметим, что любое число независимо от его представления (HEX, DEC, BIN) остается одним и тем же. А функции обрабатывают его по-разному. Например, функция read-char работает с байтами, а Lsh с битами.
После тестирования первого пиксела, единица в маске сдвигается вправо (lsh mask -1):
![]()
Тестирование каждой точки, которая описывается в переменной n, анализируется путем применения побитового умножения c значением переменной mask(if (= (logand n mask) 0) (setq lst (cons x lst))):

В верхнем примере проверялась крайняя 6-я точка сформированного числа, в нижнем примере – 19-я точка. Если результат побитового умножения ноль, то проверяемая точка – черная. Порядковый номер точки в ряду сохраняется в переменой x. Каждая черная точка заносится в начало списка (setq lst (cons x lst)). По окончании анализа ряда список записывается наоборот в файле результата result.txt (princ (reverse lst) fo).
Маска и число обновляются после 32 сдвигов (if (= mask 0) (m)), а также, в случае, если заканчивается внутренний цикл (repeat xsize…). При этом, лишние пиксели, которые находятся за пределами растра (64-50=14), автоматически отсекаются, поскольку в начале очередного цикла по Y (repeat ysize (m) …) значения переменных n и mask обновляются.
На рисунке приведен пример простого изображения (размер 34 *10 точек) из 3-х красных точек в левом нижнем углу, остальные точки белые.

Раскрываем листинг файла и, сопоставляя с изображением, определяем, как описываются данные в нем:

Файл начинается с символов “BM”, указывающих на формат файла.
С 19 позиции 4 байта (22 00 00 00) указывают размер файла по X (количество точек в строке 34), с 23-й позиции – 4 байта (0A 00 00 00) указывают размер файла по Y (количество рядов 10).
Начиная с 55-го байта и до конца файла содержатся данные о цвете точек растра – в порядке слева направо вдоль каждого ряда и снизу вверх по рядам. Одна точка описывается тремя байтами, каждый из которых представляет синюю (Blue), зеленую (Green) и красную (Red) составляющие цвета. В рассматриваемом примере первая точка (красного цвета) описана байтами (00 00 FF) вторая (белого цвета) – (FF FF FF).
Каждый ряд точек описывается количеством байт, кратным 4. Ряд из 34 точек должен описываться 34*3 + 2 =104 байтами. Два байта (00 00) добавляется в конце описания каждого ряда для обеспечения кратности 4. Если бы ряд состоял из 33 точек, то в конце каждого ряда добавилось по 1 байту для обеспечения кратности 4 (33*3 + 1 =100).
Ниже приводится модуль программы, который используется в приложении для идентификации продуктов (фруктов и овощей) на основе данных от видеокамеры. Модуль обеспечивает загрузку картинки и считывания точек (по 3 байта на каждую точку) из файла.

Ниже приводится модуль программы, который используется в приложении 3D-реконструкция по 2-м изображениям. Модуль обеспечивает загрузку данных из BMP файлов в динамически выделяемую оперативную память.

За информационным заголовком следует таблица цветов, представляющая собой массив из 256 (по числу цветов) 4-байтовых полей. Каждое поле соответствует своему цвету в палитре, а три байта из четырех – компонентам синей, зеленой и красной составляющих для этого цвета. Последний, самый старший байт каждого поля зарезервирован и равен 0.
После таблицы цветов находятся данные изображения, которое по строкам растра записано снизу вверх, а внутри строки – слева направо. Так как на некоторых платформах невозможно считать единицу данных, которая меньше 4 байт, длина каждой строки выровнена на границу в 4 байта, т. е. при длине строки, некратной четырем, она дополняется нулями. Это обстоятельство обязательно надо учитывать при считывании файла.
На нижнем рисунке представлено точечное изображение (10*5) и конец листинга файла, где захвачены несколько полей из таблицы цветов и приводятся данные об изображении (обведены красной линией).

На рисунке выделены по 4 байта цветов палитры, которые используются для указания цвета точек. Белый цвет имеет последний номер в таблице цветов – 255 (FF). Синий цвет указан под номером 252 (FC), зеленый – 250 (FA), красный – 249 (F9). Длина каждой строки дополняется 2-я байтами (00 00) для кратности 4 (10+2=12).






