2

Bitmapオブジェクトの値ImageDescriptionを変更する問題を解決しようとしています。ファイルの説明を追加します。関連するトピックを検索しましたが、解決策が見つかりませんでした。

私のコード:

public Bitmap ImageWithComment(Bitmap image)
{
   string filePath = @"C:\1.jpg";
   var data = Encoding.UTF8.GetBytes("my comment"); 
   var propItem = image.PropertyItems.FirstOrDefault();
   propItem.Type = 2;
   propItem.Id = 40092;
   propItem.Len = data.Length;
   propItem.Value = data;
   image.SetPropertyItem(propItem);
   image.Save(filePath);
   return image;
}

しかし、新しいコメントのある画像はフォルダに保存しないでください((助けてください

4

2 に答える 2

5

MSDN - Property Tagsによると、適切な int 値を使用する必要がありますId

サンプル

 using (var image = new Bitmap(@"C:\Desert.jpg"))
            {
                string filePath = @"C:\Desertcopy.jpg";
                var data = Encoding.UTF8.GetBytes("my comment");
                var propItem = image.PropertyItems.FirstOrDefault();
                propItem.Type = 2;
                propItem.Id = 0x010E; // <-- Image Description
                propItem.Len = data.Length;
                propItem.Value = data;
                image.SetPropertyItem(propItem);
                image.Save(filePath);
            }

MSDN の次の番号を使用

画像説明コード

コードを実行した後、それが画像にどのように影響したかを確認できます

オリジナル

編集後

于 2013-03-05T18:39:52.150 に答える
1

ID 40092 は 0x9C9C に変換されます。thisによると、それは有効なプロパティ アイテム ID ではありません。これによると、

イメージ形式がプロパティ項目をサポートしているが、設定しようとしている特定のプロパティをサポートしていない場合、このメソッドはその試行を無視しますが、例外はスローしません。

見た目から、ID を 0x010E にする必要があります。また、各プロパティ項目IDの詳細はこちらをご覧ください。

于 2013-03-05T18:37:07.443 に答える