PropertyItem クラス

定義

メタデータ プロパティがイメージ ファイルに含まれるようにカプセル化します。Encapsulates a metadata property to be included in an image file. 継承はできません。Not inheritable.

public ref class PropertyItem sealed
public sealed class PropertyItem
type PropertyItem = class
Public NotInheritable Class PropertyItem
継承
PropertyItem

次のコード例は、 PropertyItemクラスImage.PropertyItemsとプロパティを使用して、イメージファイル内のメタデータを読み取り、表示する方法を示しています。The following code example demonstrates how to read and display the metadata in an image file using the PropertyItem class and the Image.PropertyItems property.

この例は、 System.Drawing.Imaging名前空間をインポートする Windows フォームで使用するように設計されています。This example is designed to be used in a Windows Form that imports the System.Drawing.Imaging namespace. コードをフォームに貼り付け、パスをにfakePhoto.jpg変更して、システム上のイメージファイルをポイントします。Paste the code into the form and change the path to fakePhoto.jpg to point to an image file on your system. e PaintEventArgsフォームのPaintイベントを処理するときにメソッドを呼び出し、として渡します。ExtractMetaDataCall the ExtractMetaData method when handling the form's Paint event, passing e as PaintEventArgs.

private:
   void ExtractMetaData( PaintEventArgs^ e )
   {
      try
      {
         
         // Create an Image object. 
         Image^ theImage = gcnew Bitmap( "c:\\fakePhoto.jpg" );
         
         // Get the PropertyItems property from image.
         array<PropertyItem^>^propItems = theImage->PropertyItems;
         
         // Set up the display.
         System::Drawing::Font^ font1 = gcnew System::Drawing::Font( "Arial",10 );
         SolidBrush^ blackBrush = gcnew SolidBrush( Color::Black );
         int X = 0;
         int Y = 0;
         
         // For each PropertyItem in the array, display the id, 
         // type, and length.
         int count = 0;
         System::Collections::IEnumerator^ myEnum = propItems->GetEnumerator();
         while ( myEnum->MoveNext() )
         {
            PropertyItem^ propItem = safe_cast<PropertyItem^>(myEnum->Current);
            e->Graphics->DrawString( String::Format( "Property Item {0}", count ), font1, blackBrush, (float)X, (float)Y );
            Y += font1->Height;
            e->Graphics->DrawString( String::Format( "   ID: 0x{0}", propItem->Id.ToString( "x" ) ), font1, blackBrush, (float)X, (float)Y );
            Y += font1->Height;
            e->Graphics->DrawString( String::Format( "   type: {0}", propItem->Type ), font1, blackBrush, (float)X, (float)Y );
            Y += font1->Height;
            e->Graphics->DrawString( String::Format( "   length: {0} bytes", propItem->Len ), font1, blackBrush, (float)X, (float)Y );
            Y += font1->Height;
            count += 1;
         }
         delete font1;
      }
      catch ( Exception^ ) 
      {
         MessageBox::Show( "There was an error."
         "Make sure the path to the image file is valid." );
      }

   }
private void ExtractMetaData(PaintEventArgs e)
{
    try
    {
        // Create an Image object. 
        Image theImage = new Bitmap("c:\\fakePhoto.jpg");

        // Get the PropertyItems property from image.
        PropertyItem[] propItems = theImage.PropertyItems;

        // Set up the display.
        Font font1 = new Font("Arial", 10);
        SolidBrush blackBrush = new SolidBrush(Color.Black);
        int X = 0;
        int Y = 0;

        // For each PropertyItem in the array, display the id, 
        // type, and length.
        int count = 0;
        foreach ( PropertyItem propItem in propItems )
        {
            e.Graphics.DrawString("Property Item " + 
                count.ToString(), font1, blackBrush, X, Y);
            Y += font1.Height;

            e.Graphics.DrawString("   ID: 0x" + 
                propItem.Id.ToString("x"), font1, blackBrush, X, Y);
            Y += font1.Height;

            e.Graphics.DrawString("   type: " +
                propItem.Type.ToString(), font1, blackBrush, X, Y);
            Y += font1.Height;

            e.Graphics.DrawString("   length: " + 
                propItem.Len.ToString() + 
                " bytes", font1, blackBrush, X, Y);
            Y += font1.Height;
            count += 1;
        }
        font1.Dispose();
    }
    catch(Exception)
    {
        MessageBox.Show("There was an error." + 
            "Make sure the path to the image file is valid.");
    }

}
Private Sub ExtractMetaData(ByVal e As PaintEventArgs)

    Try
        'Create an Image object. 
        Dim theImage As Image = New Bitmap("c:\fakePhoto.jpg")

        'Get the PropertyItems property from image.
        Dim propItems As PropertyItem() = theImage.PropertyItems

        'Set up the display.
        Dim font As New font("Arial", 10)
        Dim blackBrush As New SolidBrush(Color.Black)
        Dim X As Integer = 0
        Dim Y As Integer = 0

        'For each PropertyItem in the array, display the id, type, and length.
        Dim count As Integer = 0
        Dim propItem As PropertyItem
        For Each propItem In propItems

            e.Graphics.DrawString("Property Item " + count.ToString(), _
               font, blackBrush, X, Y)
            Y += font.Height

            e.Graphics.DrawString("   iD: 0x" & propItem.Id.ToString("x"), _
               font, blackBrush, X, Y)
            Y += font.Height

            e.Graphics.DrawString("   type: " & propItem.Type.ToString(), _
               font, blackBrush, X, Y)
            Y += font.Height

            e.Graphics.DrawString("   length: " & propItem.Len.ToString() & _
                " bytes", font, blackBrush, X, Y)
            Y += font.Height

            count += 1
        Next propItem

        font.Dispose()
    Catch ex As ArgumentException
        MessageBox.Show("There was an error. Make sure the path to the image file is valid.")
    End Try

End Sub

注釈

データは、識別子、プロパティの長さ (バイト単位)、プロパティの型、およびプロパティ値へのポインターで構成されます。The data consists of: an identifier, the length (in bytes) of the property, the property type, and a pointer to the property value.

PropertyItem 、スタンドアロンのオブジェクトとして使用するためのものではありません。A PropertyItem is not intended to be used as a stand-alone object. オブジェクトPropertyItemは、からImage派生したクラスによって使用されることを意図しています。A PropertyItem object is intended to be used by classes that are derived from Image. PropertyItemオブジェクトは、メタデータを作成するのではなく、既存のイメージファイルのメタデータを取得および変更するために使用されます。A PropertyItem object is used to retrieve and to change the metadata of existing image files, not to create the metadata. したがって、 PropertyItemクラスには定義さPublicれたコンストラクターがないため、 PropertyItemオブジェクトのインスタンスを作成することはできません。Therefore, the PropertyItem class does not have a defined Public constructor, and you cannot create an instance of a PropertyItem object.

Publicコンストラクターが存在しないことを回避するには、 PropertyItem PropertyItemクラスの新しいインスタンスを作成する代わりに、既存のオブジェクトを使用します。To work around the absence of a Public constructor, use an existing PropertyItem object instead of creating a new instance of the PropertyItem class. 詳細については、「Image.GetPropertyItem」を参照してください。For more information, see Image.GetPropertyItem.

プロパティ

Id

プロパティの ID を取得または設定します。Gets or sets the ID of the property.

Len

Value プロパティの長さをバイト数で取得または設定します。Gets or sets the length (in bytes) of the Value property.

Type

Value プロパティに格納されているデータの型を定義する整数を取得または設定します。Gets or sets an integer that defines the type of data contained in the Value property.

Value

プロパティ項目の値を取得または設定します。Gets or sets the value of the property item.

メソッド

Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)

適用対象

こちらもご覧ください