GdPicture image identifier.
Must be a value between 1 and the number of tags attached to a GdPicture image.
Output parameter. Array where the tag value data will be stored.
Example





In This Topic
GdPicture14 Namespace / GdPictureImaging Class / TagGetValueBytes Method

TagGetValueBytes Method (GdPictureImaging)

In This Topic
Returns as bytes, the value of a tag attached to a GdPicture image.
Syntax
'Declaration

 

Public Function TagGetValueBytes( _

   ByVal ImageID As Integer, _

   ByVal TagNo As Integer, _

   ByRef Data() As Byte _

) As Integer
public int TagGetValueBytes( 

   int ImageID,

   int TagNo,

   ref byte[] Data

)
public function TagGetValueBytes( 

    ImageID: Integer;

    TagNo: Integer;

   var  Data: Bytearray of

): Integer; 
public function TagGetValueBytes( 

   ImageID : int,

   TagNo : int,

   Data : byte[]

) : int;
public: int TagGetValueBytes( 

   int ImageID,

   int TagNo,

   ref byte[]* Data

) 
public:

int TagGetValueBytes( 

   int ImageID,

   int TagNo,

   array<byte>^% Data

) 

Parameters

ImageID
GdPicture image identifier.
TagNo
Must be a value between 1 and the number of tags attached to a GdPicture image.
Data
Output parameter. Array where the tag value data will be stored.

Return Value

The length of the Data array.
Example
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++)

                    {

                        uint numerator = System.BitConverter.ToUInt32(data, readIndex);

                        uint 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