У меня есть веб-приложение .NET c #, которое позволяет пользователям загружать изображения. Я установил пакет Magick.NET NuGet. Я пытаюсь конвертировать загруженные файлы .heic в .jpg, но я не уверен, с чего начать.
Вот загрузка без Magick.net.
string fullPath = path + @"\Images\" + fileName;
Image image = Image.FromStream(postedFile.InputStream);
image.Save(path);
Вот что яЯ пытаюсь, но получаю следующую ошибку: Недопустимый параметр
string fullPath = path + @"\Images\" + fileName;
Bitmap bitmap = new Bitmap(postedFile.InputStream); <-- ERROR
using (MagickImage i = new MagickImage(bitmap))
{
i.Format = MagickFormat.Jpg;
using (MemoryStream memStream = new MemoryStream(i.ToByteArray()))
{
image = Image.FromStream(memStream);
}
}
image.Save(path);
Вот еще один подход, аналогичный документации на Magick.net, но я получаю следующую ошибку: Попыткапо безопасности прозрачный метод доступа к безопасности критический метод не удалось. Сборка помечается атрибутом AllowPartiallyTrustedCallersAttribute и использует модель прозрачности безопасности уровня 2. Прозрачность уровня 2 приводит к тому, что все методы в сборках AllowPartiallyTrustedCallers становятся прозрачными для безопасности по умолчанию, что может быть причиной этого исключения.
string fullPath = path + @"\Images\" + fileName;
Stream fs = postedFile.InputStream;
BinaryReader br = new System.IO.BinaryReader(fs);
byte[] bytes = br.ReadBytes((Int32)fs.Length);
using (MemoryStream memStream = new MemoryStream())
{
using (MagickImage i = new MagickImage(bytes)) <-- ERROR
{
i.Format = MagickFormat.Jpg;
image = Image.FromStream(memStream);
}
}
image.Save(path);
У кого-нибудь есть предложения?