Идентификационные теги С# mp3 с taglib — обложка альбома

Я делаю свой собственный mp3-теггер, и пока все в порядке. Хотя я застрял, читая тег обложки альбома.

Я хотел бы знать, как отобразить обложку в окне изображения С#.NET, но все, что я видел об этом конкретном теге, меня смущает.

Я знаю, что могу получить теги из таких файлов

txtAlbum.Text = currentFile.Tag.Album;

но все, что мне нужно сделать, это взять изображение из файла и вставить его в ящик для изображений. Тогда я хотел бы знать, как записать картинку (jpg, png) в файл и перезаписать существующую.

Любая помощь будет принята с благодарностью, и спасибо за ваше ценное время.


person Purplebob    schedule 20.04.2012    source источник


Ответы (2)


Попробуй это

TagLib.File tagFile = TagLib.File.Create(path);
IPicture newArt = new Picture(tmpImg);
tagFile.Tag.Pictures = new IPicture[1] {newArt};
tagFile.Save();

ИЗМЕНИТЬ

var file = TagLib.File.Create(filename);
        if (file.Tag.Pictures.Length >= 1)
        {
            var bin = (byte[])(file.Tag.Pictures[0].Data.Data);
            PreviewPictureBox.Image = Image.FromStream(new MemoryStream(bin)).GetThumbnailImage(100, 100, null, IntPtr.Zero);
        }
person Likurg    schedule 20.04.2012
comment
Красавчик спасибо за это. Есть идеи, как читать обложку альбома? - person Purplebob; 20.04.2012
comment
я бы не стал использовать уменьшенное изображение, потому что качество изображения иногда теряется, но используйте то, что вы думаете - person cramopy; 02.04.2015
comment
Не работает для меня. Нужно ли мне использовать абстракцию, чтобы заставить ее работать в Windows 10 (как я видел на каком-то веб-сайте)? - person ; 05.06.2018

вот мое быстрое и короткое решение этой проблемы:

var file = TagLib.File.Create(filename);
var bin = (byte[])(file.Tag.Pictures[0].Data.Data);
imageBox.Image = Image.FromStream(new MemoryStream(bin));
person cramopy    schedule 02.09.2014