在c#net中,如何在不降低图像质量的情况下调整图像大小?

在c#net中,如何在不降低图像质量的情况下调整图像大小?,c#,blur,loss,C#,Blur,Loss,如何在c#net中调整图像大小而不降低其质量 Stream myBlob; var encoder = new JpegEncoder();using (var output = new MemoryStream()) using (SixLabors.ImageSharp.Image<Rgba32> image = Image.Load(myBlob)) { var divisor = image.Width / 100; var height = Convert.To

如何在
c#net
中调整图像大小而不降低其质量

Stream myBlob;
var encoder = new JpegEncoder();using (var output = new MemoryStream())
using (SixLabors.ImageSharp.Image<Rgba32> image = Image.Load(myBlob))
{   var divisor = image.Width / 100;
    var height = Convert.ToInt32(Math.Round((decimal)(image.Height/divisor)));
    image.Mutate(x => x.Resize(320, 640));
    image.Save(output, encoder);
    output.Position = 0;
    await blockBlob.UploadFromStreamAsync(output);
}
streammyblob;
var encoder=新的JPEG编码器();使用(var output=newmemoryStream())
使用(SixLabors.ImageSharp.Image=Image.Load(myBlob))
{var divisor=image.Width/100;
var height=Convert.ToInt32(数学四舍五入((十进制)(image.height/除数));
Mutate(x=>x.Resize(320640));
图像保存(输出、编码器);
输出位置=0;
等待blockBlob.UploadFromStreamAsync(输出);
}

您可以使用重载位图构造函数创建新的重新调整大小的图像,如下所示:

public static Image Resize(Image image, Size size)
{
   return (Image)(new Bitmap(image, size));
}
你可以用以下方式来称呼它:

var result = Resize(image, new Size(320,640));

您可以使用重载位图构造函数创建新的重新调整大小的图像,如下所示:

public static Image Resize(Image image, Size size)
{
   return (Image)(new Bitmap(image, size));
}
你可以用以下方式来称呼它:

var result = Resize(image, new Size(320,640));

我想你是在问如何使用ImageSharp。他们的文档充其量是劣质的,因此您的解决方案是查看源代码,特别是重采样器:我想您是在问如何使用ImageSharp。他们的文档充其量是劣质的,因此您的解决方案是查看源代码,特别是重采样器:然而,如果源文件已经是JPEG,那么在重新编码为JPEG时会引入额外的伪影,因此仍然会丢失质量。然而,如果源文件已经是JPEG,则在重新编码为JPEG时会引入额外的伪影,因此仍然会丢失质量。