Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp_Graphics.doc
Скачиваний:
16
Добавлен:
16.11.2019
Размер:
3.1 Mб
Скачать

Компиляция кода

Предыдущий пример предназначен для работы с Windows Forms, для него необходим объект PaintEventArgs e, передаваемый в качестве параметра обработчику события Paint. Не забудьте заменить путь и имя файла Replace Texture.jpg именем файла изображения в вашей системе.

How to: Read Image Metadata

Some image files contain metadata that you can read to determine features of the image. For example, a digital photograph might contain metadata that you can read to determine the make and model of the camera used to capture the image. With GDI+, you can read existing metadata, and you can also write new metadata to image files.

GDI+ stores an individual piece of metadata in a PropertyItem object. You can read the PropertyItems property of an Image object to retrieve all the metadata from a file. The PropertyItems property returns an array of PropertyItem objects.

A PropertyItem object has the following four properties: Id, Value, Len, and Type.

Id

A tag that identifies the metadata item. Some values that can be assigned to Id are shown in the following table.

Hexadecimal value

Description

0x0320

0x010F

0x0110

0x9003

0x829A

0x5090

0x5091

Image title

Equipment manufacturer

Equipment model

ExifDTOriginal

Exif exposure time

Luminance table

Chrominance table

Value

An array of values. The format of the values is determined by the Type property.

Len

The length (in bytes) of the array of values pointed to by the Value property.

Чтение метаданных изображения

Некоторые файлы с изображениями содержат метаданные, которые можно прочитать, чтобы определить свойства изображения. Например, цифровая фотография может содержать метаданные, которые позволяют определить модель камеры, с помощью которой была получена данная фотография. С помощью интерфейса GDI+ можно считывать существующие метаданные, а также добавлять новые метаданные в файлы с изображениями.

Интерфейс GDI+ хранит каждый отдельный блок метаданных в объекте PropertyItem. Чтобы получить все метаданные файла, можно прочитать свойство PropertyItems объекта Image. Свойство PropertyItems возвращает массив объектов PropertyItem.

Объект PropertyItem имеет следующие четыре свойства: Id, Value, Len и Type.

Id

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

Шестнадцатеричное значение

Описание

0x0320

0x010F

0x0110

0x9003

0x829A

0x5090

0x5091

Название изображения

Производитель оборудования

Модель оборудования

ExifDTOriginal

Exif — время выдержки

Таблица светимости

Таблица хроматических данных

Значение

Массив значений. Формат значений определяется свойством Type.

Len

Размер (в байтах) массива значений, на который указывает свойство Value.

Type

The data type of the values in the array pointed to by the Value property. The formats indicated by the Type property values are shown in the following table

Numeric value

Description

1

A Byte

2

An array of Byte objects encoded as ASCII

3

A 16-bit integer

4

A 32-bit integer

5

An array of two Byte objects that represent a rational number

6

Not used

7

Undefined

8

Not used

9

SLong

10

SRational

Example

Description

The following code example reads and displays the seven pieces of metadata in the file FakePhoto.jpg. The second (index 1) property item in the list has Id 0x010F (equipment manufacturer) and Type 2 (ASCII-encoded byte array). The code example displays the value of that property item.

Type

Тип элементов массива, на который указывает свойство Value. Типы, определяемые по значению свойства Type, приводятся в следующей таблице.

Числовое значение

Описание

1

Элемент Byte.

2

Массив объектов Byte в кодировке ASCII

3

16-битное целое число

4

32-битное целое число

5

Массив из двух объектов Byte, представляющих рациональное число

6

Не используется

7

Не определено

8

Не используется

9

SLong

10

SRational