我有一个允许用户上传图像的 .NET c# Web 应用程序。我安装了 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);
有人有什么建议吗?