Sie sind auf Seite 1von 2

If you have ever worked with mechanical and engineering

drawing or digital images, you are probably aware of metadata. Metadata is information about the image, that's not part of the image itself. When an engineer draws an image, metadata is often added, such as the following information: last updated, updated by, data , place, and names. A photograph might include metadata such as image title, manufacturer, and model. In the .NET Framework library, the PropertyItem object is used as a placeholder for metadata. The PropertyItem class provides four properties: Id, Len, Type, and Value. All of these properties have both read and write access. The Id property is a tag, which identifies the metadata item. Table 9.10 describes Id tag values. The Value property is an array of values whose format is determined by the Type property. The Len property represents the length of the array of values in bytes. The Type property represents the data type of values stored in the array. Table 9.11 described the format of the Type property values. TABLE 9.10: Id values Hexadecimal Value 0x0320 0x010F 0x0110 0x9003 0x829A 0x5090 0x5091 Description Image title Equipment manufacturer Equipment model ExifDTOriginal EXIF exposure time Luminance table Chrominance table

TABLE 9.11: Format of Type property values Numeric Value 1 2 3 4 5 6 7 8 9 10 Description A Byte object An array of Byte object encoded as ASCII A 16-bit integer A 32-bit integer An array of two Byte objects that represent a rational number Not used Undefined Not used Slong Srational

An Image object may contain more than one PropertyItem object. The PropertyItems property of the Image class represents an array of PropertyItem objects corresponding to an image. The PropertyIdList property of the Image class returns an array of property IDs stored in an image object. Listing 9.17 uses the PropertyItems property of the Image class and reads all property items of an image.

LISTING 9.17: Reading the metadata of a bitmap Private Sub Form1_Load(ByVal sender As Object,ByVal e As System.EventArgs) ' Create an image from a file Dim gAs Graphics = Me.CreateGraphics() Dim curImageAs Image = Image.FromFile("C:/Documents and Settings/Manu/Desktop/16864z.Bmp") Dim rect As New Rectangle(20, 20, 100, 100) g.DrawImage(curImage, rect) ' Create an array of PropertyItem objects and read items using PropertyItems Dim propItemsAs PropertyItem() = curImage.PropertyItems ' Create values of PropertyItem members For Each propItem As PropertyItem In propItems Dim encoderAs New System.Text.ASCIIEncoding() Dim str As String ="ID =" + propItem.Id.ToString("x") str += ", Type =" + propItem.Type.ToString() str += ", Length =" + propItem.Len.ToString() str += ", Value =" + encoder.GetString(propItem.Value) MessageBox.Show(str) Next ' Dispose of object g.Dispose() End Sub Figure 9.25 shows the output from Listing 9.17.

FIGURE 9.25: Reading the metadata of a bitmap