使用标签lib sharp library编写图像关键字

问题描述 投票:1回答:1

我想用Taglib#library(GitHub,NuGet Install-Package taglib)编写图像标签(关键字标签),所以我使用了这个example和这个tutorial。在此基础上我写了这个方法:

using TagLib;

    public void AddTagsToImage() 
    {
        string path = @"C:\image.jpg";
        string[] tagset = new string[] { "tag1", "tag2", "tag3" };
        TagLib.File tagFile = TagLib.File.Create(path);
        var image = tagFile as TagLib.Image.File;
        image.ImageTag.Keywords = tagset;
        image.Save();
    }

它编译,但不能按预期工作。图像文件打开正常,然后我们将其识别为图像,但是我尝试设置image.ImageTag.Keywords属性没有任何反应(字符串[]是标签集)。因此保存图像不会修改任何内容那么,我如何修改以使其工作?

编辑。问题是由于错误0x88982F72或显然,如果图像元数据不存在/损坏Taglib#库可能无法正常工作。

c# image file taglib-sharp
1个回答
0
投票

我已经尝试过你的代码,对我来说效果很好。

    static void Main(string[] args)
    {
        string path = @"C:\image.jpg";
        string[] tagset = new string[] { "tag1", "tag2", "tag3" };
        TagLib.File tagFile = TagLib.File.Create(path);
        var image = tagFile as TagLib.Image.File;

        Console.WriteLine("Rating          : " + image.ImageTag.Rating);
        Console.WriteLine("DateTime        : " + image.ImageTag.DateTime);
        Console.WriteLine("Orientation     : " + image.ImageTag.Orientation);
        Console.WriteLine("Software        : " + image.ImageTag.Software);
        Console.WriteLine("ExposureTime    : " + image.ImageTag.ExposureTime);
        Console.WriteLine("FNumber         : " + image.ImageTag.FNumber);
        Console.WriteLine("ISOSpeedRatings : " + image.ImageTag.ISOSpeedRatings);
        Console.WriteLine("FocalLength     : " + image.ImageTag.FocalLength);
        Console.WriteLine("FocalLength35mm : " + image.ImageTag.FocalLengthIn35mmFilm);
        Console.WriteLine("Make            : " + image.ImageTag.Make);
        Console.WriteLine("Model           : " + image.ImageTag.Model);

        image.ImageTag.Keywords = tagset;
        image.Save();

        foreach (var item in image.ImageTag.Keywords)
            Console.WriteLine("> Tag: " + item);                

        Console.ReadLine();

    }

请注意,要测试此代码,您需要在路径中实际拥有一个图像:C:\ image.jpg

© www.soinside.com 2019 - 2024. All rights reserved.