Blue Theme Orange Theme Green Theme Red Theme
 
Home | Forums | Videos | Advertise | Certifications | Downloads | Blogs | Interviews | Jobs | Beginners | Training
 | Consulting  
Submit an Article Submit a Blog 
 Jump to
Skip Navigation Links
Search :       Advanced Search �
Home

Author Rank :
Page Views :
Downloads : 0
Rating :
 Rate it
Level :
Become a Sponsor
Tags


This article has been excerpted from book "Graphics Programming with GDI+".

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

Description

0x0320

Image title

0x010F

Equipment manufacturer

0x0110

Equipment model

0x9003

ExifDTOriginal

0x829A

EXIF exposure time

0x5090

Luminance table

0x5091

Chrominance table

TABLE 9.11: Format of Type property values

Numeric Value

Description

1

A Byte object

2

An array of Byte object 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

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 void Form1_Load(object sender, System.EventArgs e)
        {
            // Create an image from a file
            Graphics g = this.CreateGraphics();
            Image curImage = Image.FromFile("C:/Documents and Settings/Manu/Desktop/16864z.Bmp");
            Rectangle rect = new Rectangle(20, 20, 100, 100);
             g.DrawImage(curImage, rect);

            // Create an array of PropertyItem objects and read items using PropertyItems
             PropertyItem[] propItems = curImage.PropertyItems;

            // Create values of PropertyItem members

            foreach (PropertyItem propItem in propItems)
            {
                 System.Text.ASCIIEncoding encoder =
                new System.Text.ASCIIEncoding();
                string str = "ID =" + propItem.Id.ToString("x");
                str += ", Type =" + propItem.Type.ToString();
                str += ", Length =" + propItem.Len.ToString();
                str += ", Value ="
                + encoder.GetString(propItem.Value);
                MessageBox.Show(str);
            }

            // Dispose of object
            g.Dispose();
        }

Figure 9.25 shows the output from Listing 9.17.

Figure 9.25.jpg

FIGURE 9.25: Reading the metadata of a bitmap

Conclusion

Hope the article would have helped you in understanding reading Metadata of Images in GDI+. Read other articles on GDI+ on the website.

bookGDI.jpg
This book teaches .NET developers how to work with GDI+ as they develop applications that include graphics, or that interact with monitors or printers. It begins by explaining the difference between GDI and GDI+, and covering the basic concepts of graphics programming in Windows.

 [Top] Rate this article
 
 About the author
 
Author
 Post a Feedback, Comment, or Question about this article
Subject:
Comment:
 Comments

 � 2023  contents copyright of their authors. Rest everything copyright Mindcracker. All rights reserved.