GdPicture.NET Reference Guide
TagGetID Method (GdPictureImaging)
Example 





GdPicture14 Namespace > GdPictureImaging Class : TagGetID Method
GdPicture image identifier.
Must be a value between 1 and the number of tags attached to a GdPicture image.
Returns a tag ID attached to a GdPicture image.
Syntax
'Declaration
 
Public Function TagGetID( _
   ByVal ImageID As Integer, _
   ByVal TagNo As Integer _
) As Tags
public Tags TagGetID( 
   int ImageID,
   int TagNo
)
public function TagGetID( 
    ImageID: Integer;
    TagNo: Integer
): Tags; 
public function TagGetID( 
   ImageID : int,
   TagNo : int
) : Tags;
public: Tags TagGetID( 
   int ImageID,
   int TagNo
) 
public:
Tags TagGetID( 
   int ImageID,
   int TagNo
) 

Parameters

ImageID
GdPicture image identifier.
TagNo
Must be a value between 1 and the number of tags attached to a GdPicture image.

Return Value

A member of the Tags enumeration.
Example
Dealing with the tags of a GdPicture image.
Reading the tags from a jpeg image.
using (GdPictureImaging gdpictureImaging = new GdPictureImaging())
{
    int imageID = gdpictureImaging.CreateGdPictureImageFromFile("image.jpg", false);
 
    // Write in a report all the tags available within the file.
    StringBuilder report = new StringBuilder();
    int tagCount = gdpictureImaging.TagCount(imageID);
    for (int tagNo = 1; tagNo <= tagCount; tagNo++)
    {
        Tags tagID = gdpictureImaging.TagGetID(imageID, tagNo);
        string tagName = gdpictureImaging.TagGetName(imageID, tagNo);
        string tagValue = gdpictureImaging.TagGetValueString(imageID, tagNo);
 
        report.AppendLine(tagID.ToString() + " " + tagName.ToString() + " " + tagValue.ToString());
    }
    gdpictureImaging.ReleaseGdPictureImage(imageID);
 
    MessageBox.Show(report.ToString(), "Tags", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
Reading gps coordinates from the tags of a jpeg image.
using (GdPictureImaging gdpictureImaging = new GdPictureImaging())
{
    int imageID = gdpictureImaging.CreateGdPictureImageFromFile("image.jpg", false);
 
    // Walk the list of tags to gather the gps coordinates.
 
    StringBuilder report = new StringBuilder();
    int tagCount = gdpictureImaging.TagCount(imageID);
 
    for (int tagNo = 1; tagNo <= tagCount; tagNo++)
    {
        Tags tag = gdpictureImaging.TagGetID(imageID, tagNo);
        switch (tag)
        {
            case Tags.TagGpsLatitudeRef:
                report.Append("LatitudeRef: ");
                report.AppendLine(gdpictureImaging.TagGetValueString(imageID, tagNo));
                break;
 
            case Tags.TagGpsLongitudeRef:
                report.Append("LongitudeRef: ");
                report.AppendLine(gdpictureImaging.TagGetValueString(imageID, tagNo));
                break;
 
            case Tags.TagGpsLatitude:
            case Tags.TagGpsLongitude:
                StringBuilder coordinate = new StringBuilder();
                if (gdpictureImaging.TagGetType(imageID, tagNo) == TagType.TagTypeRational)
                {
                    // Read the rationals for the coordinate, usually 3 floatting values, 8 bytes per value.
 
                    int dataLength = gdpictureImaging.TagGetLength(imageID, tagNo);
                    byte[] data = new byte[dataLength];
                    gdpictureImaging.TagGetValueBytes(imageID, tagNo, ref data);
 
                    int rationalsCount = dataLength / 8;
                    int readIndex = 0;
                    for (int rationalIndex = 0; rationalIndex < rationalsCount; rationalIndex++)
                    {
                        UInt32 numerator = System.BitConverter.ToUInt32(data, readIndex);
                        UInt32 denominator = System.BitConverter.ToUInt32(data, readIndex + 4);
                        double value = (double)numerator / (double)denominator;
                        coordinate.Append(value.ToString());
                        coordinate.Append(" ");
                        readIndex += 8;
                    }
                }
                else
                {
                    coordinate.Append(gdpictureImaging.TagGetValueString(imageID, tagNo));
                }
 
                report.Append(tag.ToString() + ": ");
                report.AppendLine(coordinate.ToString());
                break;
 
            default:
                break;
        }
    }
 
    gdpictureImaging.ReleaseGdPictureImage(imageID);
    MessageBox.Show(report.ToString(), "Coordinates", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
See Also

Reference

GdPictureImaging Class
GdPictureImaging Members
TagCount Method