我想为图片添加额外的属性或信息。 我尝试使用一个新的类来获取图像属性,我只是添加一个,但我不知道如何做到这一点。
此外,我无法使用已经在使用的属性“Tag”,并且无法覆盖
public partial class myImage : System.Windows.Controls.Image
{
//?
}
答案 0 :(得分:0)
向从Image派生的类添加属性如下所示:
public class MyImage : Image
{
public string AdditionalInfoProperty { get; set; }
}
您还可以创建一个包含ImageSource
对象的属性:
public class MyImage
{
public ImageSource Image { get; set; }
public string AdditionalInfoProperty { get; set; }
}
然后在你的xaml中你会像这样使用它,假设DataContext
拥有MyImage
类型的对象。
<Image Source="{Binding Image}"/>
<TextBlock Text="{Binding AdditionalInfoProperty}"/>
答案 1 :(得分:0)
获取或设置一个表示图像作者的值。
public System.Collections.ObjectModel.ReadOnlyCollection<string> Author { get; set; }
下面的代码示例演示如何通过使用BitmapMetadata类的友好属性将元数据写入位图图像。
FileStream stream3 = new FileStream( "image2.tif", FileMode.Create );
BitmapMetadata myBitmapMetadata = new BitmapMetadata( "tiff" );
TiffBitmapEncoder encoder3 = new TiffBitmapEncoder();
myBitmapMetadata.ApplicationName = "Microsoft Digital Image Suite 10";
myBitmapMetadata.Author = new ReadOnlyCollection<string>(
new List<string>() { "Mehdi Daustany" } );
myBitmapMetadata.CameraManufacturer = "Tailspin Toys";
myBitmapMetadata.CameraModel = "TT23";
myBitmapMetadata.Comment = "Nice Picture";
myBitmapMetadata.Copyright = "2010";
myBitmapMetadata.DateTaken = "5/23/2010";
myBitmapMetadata.Keywords = new ReadOnlyCollection<string>(
new List<string>() { "Mehdi", "Daustany" } );
myBitmapMetadata.Rating = 5;
myBitmapMetadata.Subject = "Mehdi";
myBitmapMetadata.Title = "Mehdi's photo";
// Create a new frame that is identical to the one
// from the original image, except for the new metadata.
encoder3.Frames.Add(
BitmapFrame.Create(
decoder2.Frames[0],
decoder2.Frames[0].Thumbnail,
myBitmapMetadata,
decoder2.Frames[0].ColorContexts ) );
encoder3.Save( stream3 );
stream3.Close();
答案 2 :(得分:-1)
考虑你有一张图片
Image img = Image.FromFile("C:\\temp\\smth\\smth.jpg");
使用系统绘图获取propertyitem
System.Drawing.Imaging.PropertyItem prop = img.PropertyItems[0];
设置信息
SetProperty(ref prop, 33432, "Test Info...");
img.SetPropertyItem(prop);