こんにちは、いくつかの .mp3 曲をロードし、カバーのサイズをバイト単位で必要なサイズに変更する小さなアプリを作成しています。
必要以上の解像度になるまで実際の解像度を変更するのが最善だと思います。しかし、その方法やID3の写真を保存する方法が本当にわかりません。
曲はOpenFileDialogからロードされ、必要なサイズは単純なtextBoxからロードされます。
私は taglib# と C#(WPF) で作業していますが、この問題に対するより良いライブラリがあれば、私は抵抗しません。
これが私の例です。実際に写真のサイズを変更しますが、短くなりました。
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
int size;
try
{
size = int.Parse(textBox1.Text);
}
catch (FormatException)
{
MessageBox.Show("Enter requiered size!", "Err");
return;
}
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.DefaultExt = ".mp3";
dlg.Filter = "mp3 files (.mp3) | *.mp3";
dlg.Multiselect = true;
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
foreach (string file in dlg.FileNames)
{
var song = TagLib.File.Create(file);
if (song.Tag.Pictures.Length > 0)
{
// var bin = (byte[])(song.Tag.Pictures[0].Data.Data);
song.Tag.Pictures[0].Data.Resize(size);
}
}
}
}